有一个非常大的Android项目,使用大约20个库,包括谷歌和第三方库。每个Gradle控制台编译需要5分钟,但实际上它需要更多。也许这个控制台不会计算解决某些依赖关系所需的时间。
我有一台配备16GB内存的野兽i7机器,它似乎没有任何帮助。
我已尝试过几乎任何来自SO的解决方案,告诉如何加快编译速度,但两者都没有帮助。
例如,如果我没有更改项目中的任何内容,--dry-run
的解决方案将快速编译。否则,它没有帮助。
同样如下:
gradle.properties
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
似乎没有任何帮助。
我也试过排除jcenter()
并只留下Maven,但它根本没用。
mavenLocal()
mavenCentral()
//jcenter()
我无法以这种方式编译它,因为像mopub
这样的某些库需要jcenter
。
我的问题有解决方案吗?您可以想象一下,如果您在第3天失去编译的项目上工作有多么令人沮丧。
答案 0 :(得分:0)
可悲的是,你无法加速。但是你可以做一些技巧。
将远程Maven转换为本地maven仓库。当您运行-i
切换并看到某个库经常和太长时间联系Maven时,将该库转换为本地Maven仓库是一个很好的指标。
将minSdk
设置为某个高值,如19或21(如果targetSdk
为23),编译时间将减少。注意:您只能在调试阶段以这种方式工作。每次你想要发布APK时,你必须以缓慢的方式编译它,看看是否有任何弃用的方法,如果你已经正确处理它们。