假设我们有一个名为strings_test.xml的文件,其中存储着用于测试的字符串值,应该在调试版本中显示。当apk构建为发布版本时,所有值都应更改为空字符串,例如:
<string name="test_some_card_text">@string/empty</string>
。是否有可能实现这一点?提前感谢。是的,您可以在应用程序 gradle 的 buildTypes 中完成此操作。
buildTypes {
mybuild {
resValue "string", "test_some_card_text", '"test"'
resValue "string", "other_text", '"other"'
}
debug {
resValue "string", "test_some_card_text", '"test"'
resValue "string", "other_text", '"other"'
}
}
然后像这样访问它。
getApplicationContext().getResources().getString(R.string.test_some_card_text);
getApplicationContext().getResources().getString(R.string.other_text);
构建需要选择相应的 构建变体
并进行构建。
对于那些寻找一种类似方法来应用于raw
资源的人,我使用buildConfigField
处理了它。
gradle
...
buildTypes {
debug {
...
buildConfigField "int", "shared_resource_name", 'R.raw.debug_resource_name'
...
}
prod {
...
buildConfigField "int", "shared_resource_name", 'R.raw.prod_resource_name'
...
}
}
注意引号。然后,在文件中的任何原来直接访问R.raw.resource_value
的位置,将BuildConfig.shared_resource_name
放置其中。
我认为这可以用于其他资源。