安卓工作室Gradle服务器配置

18
在使用GradleAndroid Studio中,我该如何设置DEBUG / RELEASE变量?例如,当我在DEBUG模式下运行我的应用程序时,希望我的服务器为:

SERVER = "http://www.mytestserver.com";

当我在RELEASE模式下运行我的应用程序时,希望我的服务器URL为:

SERVER = "http://www.myproductionserver.com";

我该如何实现呢?

谢谢

2个回答

27

从这个链接开始:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Types

除其他事项外,本节意味着Android Studio项目中的模块可以使用单独的“debug”和“release”目录来存储源代码、资源等。

例如,在由Android Studio创建的项目(而不是从Eclipse导入的项目)中,您可以在“build.gradle”文件中使用以下文件,无需进行任何其他配置:

  • <Module>/src/main/res/values/strings.xml (默认情况下由IDE创建)
  • <Module>/src/debug/res/values/strings.xml (由您手动创建)
  • <Module>/src/release/res/values/strings.xml (由您手动创建)

debug目录下的strings.xml文件中,您可以定义一个新的字符串资源:

<string name="server_uri">http://www.mytestserver.com</string>

在“release”目录的“strings.xml”文件中,您可以定义相同的字符串资源,但具有不同的值。
<string name="server_uri">http://www.myproductionserver.com</string>

这些资源会在Gradle构建时自动添加到main目录下的其他字符串值中,具体取决于使用的构建类型 - 您无需进行任何显式的配置。


4

只能使用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" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接