在Android Studio和使用Gradle中,我如何设置 DEBUG/RELEASE 变量。例如,当我在 DEBUG 中运行我的应用程序时,我希望我的服务器是:
服务器=“ http://www.mytestserver.com ”;
当我在 RELEASE 中运行我的应用程序时,我希望我的服务器 URL 为:
服务器=“ http://www.myproductionserver.com ”;
我怎样才能做到这一点?
问候
在Android Studio和使用Gradle中,我如何设置 DEBUG/RELEASE 变量。例如,当我在 DEBUG 中运行我的应用程序时,我希望我的服务器是:
服务器=“ http://www.mytestserver.com ”;
当我在 RELEASE 中运行我的应用程序时,我希望我的服务器 URL 为:
服务器=“ http://www.myproductionserver.com ”;
我怎样才能做到这一点?
问候
从这个链接开始:http ://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Types
除其他外,这部分意味着 Android Studio 项目中的模块可以使用 source-code/resources/etc 的单独“调试”和“发布”目录。
因此,例如,在由 Android Studio 创建的项目中(不是从 Eclipse 导入的),您可以在“build.gradle”中使用这些文件而无需任何额外配置:
在调试目录的strings.xml文件中,你可以定义一个新的字符串资源如:
<string name="server_uri">http://www.mytestserver.com</string>
并且在发布目录的strings.xml文件中,你可以定义相同的字符串资源,但是使用不同的值:
<string name="server_uri">http://www.myproductionserver.com</string>
这些资源会在 Gradle 构建期间自动添加到主目录中的其他字符串值中,具体取决于使用的构建类型 - 您无需进行任何显式配置。
Gradle 只能在app/build.gradle中添加字符串
您可以在此处存储:Server Urls、Google Map Api Key 等。
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" />