这是一款适用于Android的应用程序,它是某个网址上的网络服务的客户端。在CI服务器(Teamcity)上使用gradle进行项目构建。我需要构建一个Web服务地址的应用程序,并希望快乐地做到这一点=)如何在构建gradle时传输此设置?我希望您可以在控制台或gradle配置文件中的程序集中指定一个参数,该文件将在应用程序中使用。我很满意这个设置是硬编码(它没有提供应用程序中的更改)还是需要用gradle创建一个文件并将其安装到带有apk的设备?在这种情况下我应该把它放在哪里?对不起我的英语不好。不是我的原生。我希望我的问题很明确。什么是最好的方法?如何从应用程序内部的代码中获取它?
我拥有:teamcity,gradle,android-project
我想要的是:使用一些设置(服务器API的地址)构建android项目而无需更改代码
答案 0 :(得分:1)
就我而言,这已经足够了:
在build.gradle中,在defaultConfig块内:
defaultConfig
{
...
buildConfigField 'String', 'ServerAddress', '"http://example.com"'
...
}
它在BuildConfig.java中生成:
public final class BuildConfig
{
...
public static final String ServerAddress = "http://example.com";
}
最终用在我的代码中(我使用RoboSpice):
@Rest(rootUrl = BuildConfig.ServerAddress, converters = { MappingJackson2HttpMessageConverter.class })
public interface IRestClient
{
...