Android Gradle TipsAndroid

升级到 Gradle plugin 2.3.0出现的问题

2017-08-10  本文已影响10人  act262

升级到 Gradle plugin 2.3.0出现的问题

Tags: gradle


自从把gradle plugin升级到2.3.0后出现了问题,3.0.0后又没有这个问题了。
本地AS或者命令行跑都没有出现问题,但是在CI服务器上跑的却出现问题了。

CI服务器上的一些环境变量可能被某个软件改变了,所以默认用户目录不是我们的

输出如下log

...
ERROR: Unable to open PNG file
AAPT err(Facade for 2005761187): \\?\C:\Windows\System32\config\systemprofile\.android\build-cache\a08444405a12f3ce2f6e1175b4b52105017305cd\output\res\drawable-xhdpi-v4\abc_spinner_mtrl_am_alpha.9.png ERROR: Unable to open PNG file
Error: Some file crunching failed, see logs for details
:app:mergeProdReleaseResources FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:mergeProdReleaseResources'.
> Error: Some file crunching failed, see logs for details

* Try:
Run with --info or --debug option to get more log output.

大概就是说文件目录不能识别导致的问题了,有可能是目录太长,也有可能是编码问题导致的.
在gradle3.x之后有缓存功能,而android gradle plugin 2.3.0默认开启了build-cache功能,可以加速构建的。

解决方案

  1. 指定正常的build-cache路径,默认在~/.android/build-cache
  2. 禁用这个缓存功能
    在gradle.properties文件设置
// You can specify either an absolute path or a path relative
// to the gradle.properties file.
// 1. 指定build-cache路径
android.buildCacheDir=<path-to-directory>

// To re-enable the build cache, either delete the following
// line or set the property to 'true'.
// 2. 禁用缓存功能
android.enableBuildCache=false

也可以在gradle命令后跟上参数

 ./gradlew assembleDebug -Pandroid.enableBuildCache=false

参考:

https://developer.android.com/studio/build/build-cache.html
https://stackoverflow.com/questions/42580645/errorsome-file-crunching-failed-see-logs-for-details-afer-update-gradle

上一篇下一篇

猜你喜欢

热点阅读