我想根据Build Variant/buildType为string.xml中的字符串赋值不同的值.我想象这样的事情:
Run Code Online (Sandbox Code Playgroud)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"
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以像@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
}
}
Run Code Online (Sandbox Code Playgroud)
然后在您src项目的文件夹中,您应该有一个名为 main 的文件夹,在它旁边添加一个名为debug. 只要您正在构建调试风格,调试文件夹中的任何资源都将替换 main 中的资源,即发布文件夹。
应该是这样的:
src/
main/
java/ -- all your java code
res/
...
values/
strings.xml
debug/
res/
...
values/
strings.xml
Run Code Online (Sandbox Code Playgroud)
编辑:来自其他两个答案的方法也很好用。但是如果你有很多字符串,将它们保存为 xml 可能更容易处理。