我正在开发一个通过REST API与服务器交互的Android应用程序。显然,我需要使用不同的URL进行开发和发布。注释和取消注释的代码非常繁琐且容易出错。
哪个是处理这种情况的最佳方法?在gradle文件中使用不同的构建类型可以使该过程自动化,但是我不确定这是否是正确的方法。
构建类型也有可能增加。测试,内部发布等
最佳答案
如果您使用的是Android Studio,请使用buildConfigField
将自定义字段添加到BuildConfig
类。
buildTypes {
debug {
buildConfigField "String", "SERVER_URL", '"http://test.this-is-so-fake.com"'
}
release {
buildConfigField "String", "SERVER_URL", '"http://prod.this-is-so-fake.com"'
}
mezzanine.initWith(buildTypes.release)
mezzanine {
buildConfigField "String", "SERVER_URL", '"http://stage.this-is-so-fake.com"'
}
}
在这里,我有三种构建类型:标准
debug
和release
,以及自定义的mezzanine
一种。每个对象都在SERVER_URL
上定义一个BuildConfig
字段。然后,在Java代码中,您只需引用
BuildConfig.SERVER_URL
即可。该字段将基于您用来构建该应用程序特定版本的构建类型而具有一个值。