我想根据 Build Variant/buildType 为 string.xml 中的字符串分配一个不同的值。我想象这样的事情:
res/values-debug/string.xml <string name="my_string">some debug value</string> res/values-release/string.xml <string name="my_string">some release value</string>
但我在外面看不到这样的东西。这可能吗?
我想根据 Build Variant/buildType 为 string.xml 中的字符串分配一个不同的值。我想象这样的事情:
res/values-debug/string.xml <string name="my_string">some debug value</string> res/values-release/string.xml <string name="my_string">some release value</string>
但我在外面看不到这样的东西。这可能吗?
可以通过您的 build.gradle 文件
buildTypes {
release {
resValue "string", "my_string", "some release value"
}
debug {
resValue "string", "my_string", "some debug value"
}
}
然后你可以@string/my_string
在你想要的地方使用这个值
是的,这是可能的!
在您的 build.gradle 中,您可以添加如下内容:
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.release
}
debug {
applicationIdSuffix ".debug"
minifyEnabled false
debuggable true
signingConfig signingConfigs.release
}
}
然后在src
你项目的文件夹中,你应该有一个名为 main 的文件夹,在它旁边添加一个名为debug
. 只要您正在构建调试风格,调试文件夹中的任何资源都将替换 main 中的资源,即发布文件夹。
应该是这样的:
src/
main/
java/ -- all your java code
res/
...
values/
strings.xml
debug/
res/
...
values/
strings.xml
编辑:其他两个答案的方法也可以正常工作。但是如果你有很多字符串将它们保存为 xml 可能更容易处理。
resValue 'string', '<string_name>', "some string"
在 build.gradle 中为不同的构建变体/产品风格定义不同的
您可以直接从Android Studio执行此操作。例如,如果您需要为“staging”风格使用不同的应用名称,您可以(Android Studio v3.5):
此时,Android Studio 会strings.xml
为您的特定构建变体生成一个附加文件。使用您的“暂存”应用程序名称编辑创建的文件(例如 MyAppName - Staging)
构建.gradle(应用程序)
productFlavors {
stage {
applicationIdSuffix ".staging"
buildConfigField 'String', 'SITE_URL', '"[staging_link_here]"'
}
prod {
buildConfigField 'String', 'SITE_URL', '"[production_link_here]"'
}
}