2016-02-12 81 views
1

我是一个团队的一部分,该团队在使用RESTful api的Android应用上工作(使用retrofit 1.9),我们正在寻找方法来设置配置文件,以便我们不必在实时服务器中将连接字符串(API URL)更改为我们自己的开发环境,无论何时我们想要在应用程序中添加或更改某些内容。有没有办法在Java类中使用gradle变量

有没有使用Gradle的方法呢?换句话说,有没有办法让我们创建一个gradle配置,其中我们声明了一个变量并在项目中使用该变量(API URL)?

我们还有什么其他选择?

正如一个侧面说明,这是我们正在做的第一个Android项目,所以,如果这不是一个很好的问题,我会向前道歉(有关改进的任何提示将不胜感激)。 在此先感谢。

+0

请解释为什么您投了票? – Renier

回答

3

Sure,您可以使用build types对于添加buildConfigField,然后将在BuildConfig.[variableName]

buildTypes { 
    debug { 
     minifyEnabled true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     buildConfigField "String", "API_URL", "[apiURL]" 
     buildConfigField "Boolean", "DEBUG_MODE", "true" 
    } 
    release { 
     minifyEnabled true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     buildConfigField "String", "API_URL", "[apiURL]" 
     buildConfigField "Boolean", "DEBUG_MODE", "false" 
     signingConfig signingConfigs.config 
    } 
+0

告诉我,如果我正确理解这一点,每个开发人员都会拥有自己的buildType,并且在构建你的类型时定义了你的'API_URL'? – Renier

+2

不,您可以为每个后端系统创建一个构建类型。一种BuildType(例如debug)用于针对开发环境进行开发,另一种可能是针对您的环境进行开发,最后是针对您的发布环境进行开发。开发人员可以选择在Android Studio中使用哪个buildType。检查视图 - >工具窗口 - >生成变体。 – Christopher

+0

@Renier,您可以通过使用'BuildConfig.API_URL'访问它任何地方。 –

相关问题