每次我发布我的应用时,我都会将所有网址字符串和一些密钥从测试更改为生产。我这样做的方法就是在发布之前注释掉测试字符串。有没有更好的方法来处理基于构建类型的字符串?
答案 0 :(得分:23)
假设您使用Android Studio,默认情况下系统会创建基本的debug
和debug
风格。因此,如果您在项目的release
文件夹中添加app/src
和project
-app
-src
-debug
-java
...
-res
-values
-strings.xml
-release
-java
...
-res
-values
-strings.xml
-main
-java
...
-res
-values
-strings.xml
文件夹,则可以在那里声明单独的值。
所以你的结构应该是这样的:
debug
我还应该补充一点,如果您的字符串未在release
或main
文件夹中定义,那么它将回退到您的DynamicComponentLoader
文件夹。
答案 1 :(得分:4)
好吧,如果需要使用一些字符串,可以使用Gradle
buildTypes {
release {
resValue 'string', 'adUnitIdMain', '"production-id-value-should-be-here"'
resValue 'string', 'adUnitIdList', '"production-id-value-should-be-here"'
resValue 'string', 'adUnitIdDetail', '"production-id-value-should-be-here"'
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
resValue 'string', 'adUnitIdMain', '"test-id-value-should-be-here"'
resValue 'string', 'adUnitIdList', '"test-id-value-should-be-here"'
resValue 'string', 'adUnitIdDetail', '"test-id-value-should-be-here"'
}
}
答案 2 :(得分:1)
在build.gradle中创建两种风格。然后是两个目录,再次在链接(developer.android.com/tools/building/configuring-gradle.html)中给出。 由于您只需要更改字符串,只需将strings.xml文件复制到新目录(即开发和生产)中 删除原始strings.xml
就是这样。 :)
无需移动您的java文件或其他布局文件。
简而言之,将“main”目录中的所有内容保留在所有构建版本中应保持一致。 将依赖于构建flavor的值覆盖到它们各自的目录中。