我对定义我的应用程序的多种风格感兴趣,因此更喜欢在strings.xml文件而不是build.gradle中定义。考虑到多种口味,我想要一个简化的发布/调试版本:
buildTypes {
release {
signingConfig signingConfigs.release
resValue "string", "app_name", "@string/prod_name"
}
debug {
applicationIdSuffix ".beta"
resValue "string", "app_name", "@string/beta_name"
}
然后,在我的每个构建风味的自定义res / values / strings.xml文件中,我将分别定义各自的“ prod_name”和“ beta_name”。我也想使用这个类似的框架来定义提供者的权限等。
目前,这可以通过gradle命令行构建,但无法被Android Studio识别。
Android Studio错误:
我在'generated.xml'中找到了
<!-- Values from build type: debug -->
<string name="app_name">@string/beta_name</string>
这是一个字符串如何引用另一个字符串的典型代表。但是这次,Android Studio给了我这个错误:
Error:(7, 29) No resource found that matches the given name
(at 'app_name' with value '@string/beta_name').
我正在使用Android Studio 2.1预览版5
根据我的经验,你不可能解决@string/my_string
的resValue
DSL。Gradle将值作为简单字符串放入资源文件中。
在这种情况下,您可以使用其他文件夹来实现它:
只需使用:
src/release/res/values/strings.xml
src/debug/res/values/strings.xml
如果您想为每个构建变体(构建类型+风味)使用不同的资源,则可以使用:
src/flavor1Release/res/values/strings.xml
src/flavor1Debug/res/values/strings.xml
src/flavor2Release/res/values/strings.xml
src/flavor2Debug/res/values/strings.xml
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句