在使用Gradle和Android Studio中,我该如何设置DEBUG / RELEASE变量?例如,当我在DEBUG模式下运行我的应用程序时,希望我的服务器为:
SERVER = "http://www.mytestserver.com";
当我在RELEASE模式下运行我的应用程序时,希望我的服务器URL为:
SERVER = "http://www.myproductionserver.com";
我该如何实现呢?
谢谢
SERVER = "http://www.mytestserver.com";
当我在RELEASE模式下运行我的应用程序时,希望我的服务器URL为:
SERVER = "http://www.myproductionserver.com";
我该如何实现呢?
谢谢
从这个链接开始:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Types
除其他事项外,本节意味着Android Studio项目中的模块可以使用单独的“debug”和“release”目录来存储源代码、资源等。
例如,在由Android Studio创建的项目(而不是从Eclipse导入的项目)中,您可以在“build.gradle”文件中使用以下文件,无需进行任何其他配置:
在debug目录下的strings.xml文件中,您可以定义一个新的字符串资源:
<string name="server_uri">http://www.mytestserver.com</string>
<string name="server_uri">http://www.myproductionserver.com</string>
这些资源会在Gradle构建时自动添加到main目录下的其他字符串值中,具体取决于使用的构建类型 - 您无需进行任何显式的配置。
只能使用Gradle在app/build.gradle中添加字符串。
您可以在此处存储:服务器网址,Google地图API密钥等。
android {
//...
buildTypes {
release {
resValue "string", "server_uri", "http ...1"
resValue "string", "google_maps_key", "your key"
shrinkResources true
debuggable false
}
releaseStaging {
resValue "string", "server_uri", "http ...2"
resValue "string", "google_maps_key", "your key2"
shrinkResources true
debuggable false
}
debug {
resValue "string", "server_uri", "http ...3"
resValue "string", "google_maps_key", "your key 3"
shrinkResources true
debuggable true
}
}
使用:
在代码中,可以作为简单的字符串使用:
getString(R.string.server_uri);
在清单文件中:
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="@string/google_maps_key" />