相关疑难解决方法(0)

在Gradle中,有更好的方法来获取环境变量吗?

在几个任务中,我引用了我的主文件夹中的jar.

是否有更好的方法来获取环境变量

ENV = System.getenv()
HOME = ENV['HOME']

task copyToServer(dependsOn: 'jar', type: Copy) {

 from 'build/libs/'
 into HOME + "/something/plugins/"
}
Run Code Online (Sandbox Code Playgroud)

这设置了$ HOME,但我希望我从文档中错过了一些魔法.

gradle

139
推荐指数
4
解决办法
11万
查看次数

在Android Studio中使用Gradle管理Google Maps API密钥

我知道Gradle很强大,我想管理用于开发/生产Google Maps的API密钥

目前我总是需要手动注释一行并取消注释另一行以使其工作.有没有办法在Gradle中自动执行一些自定义发布配置?

<!-- MapView v2 API -->
<uses-library android:name="com.google.android.maps" />
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="[MY_DEV_KEY]" />
<!-- PROD
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="[MY_PROD_KEY]" />
-->
Run Code Online (Sandbox Code Playgroud)

android key gradle google-maps-android-api-2 android-studio

49
推荐指数
4
解决办法
3万
查看次数

将API密钥保存在gradle.properties中

我是android的新手,正在开发一个项目,我看到我得到的API密钥保存gradle.properties为:

MyOpenWeatherMapApiKey="1c3ae96f93a0094e8a7chsjdgfid04aed3f10"

然后在build.gradle(module:app)我添加以下行:

buildTypes.each {
            it.buildConfigField 'String', 'OPEN_WEATHER_MAP_API_KEY', MyOpenWeatherMapApiKey
      }
Run Code Online (Sandbox Code Playgroud)

所以,在我的主程序中,我使用这个api访问数据,其URL由这段代码获得:

final String FORECAST_BASE_URL = "http://api.openweathermap.org/data/2.5/forecast/daily?";
            final String QUERY_PARAM = "q";
            final String FORMAT_PARAM = "mode";
            final String UNITS_PARAM = "units";
            final String DAYS_PARAM = "cnt";
            final String APPID_PARAM = "APPID";
            Uri builtUri = Uri.parse(FORECAST_BASE_URL).buildUpon()
                    .appendQueryParameter(QUERY_PARAM, params[0])
                    .appendQueryParameter(FORMAT_PARAM, format)
                    .appendQueryParameter(UNITS_PARAM, units)
                    .appendQueryParameter(DAYS_PARAM, Integer.toString(numDays))
                    .appendQueryParameter(APPID_PARAM, BuildConfig.OPEN_WEATHER_MAP_API_KEY)
                    .build();
            URL url = new URL(builtUri.toString());
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是为什么要采取所有变化的紧张来将appid存储在gradle部分.我们不能直接在主程序中访问吗?

我的问题的第二部分是在gradle部分实际发生了什么,尤其是buildTypes.each{}块?

api android

19
推荐指数
3
解决办法
1万
查看次数