當gradle 版本在5.1.1及其以上(或許以下某個版本就支持了)使用了新的混淆、壓縮編譯方法——R8。
在本地操作的時候,這沒有任何問題,當使用自動化部署打包的時候——JENKINS。問題出來了,在R8編譯這一過程就報錯:
Expiring Daemon because JVM Tenured space is exhausted
Daemon will be stopped at the end of the build after running out of JVM memory
OK,暫且認爲是jvm空間不夠,好我給擴大點
org.gradle.jvmargs=-Xmx2048m
依然這個地方,依然一樣的錯誤信息。
不夠?我再來。4G夠不夠?不夠。10G夠不夠?不夠。坑爹呢?
然後我就按照build過程中給的提示:
R8 is the new Android code shrinker. If you experience any issues, please file a bug at
https://issuetracker.google.com, using ‘Shrinker (R8)’ as component name. You can
disable R8 by updating gradle.properties with ‘android.enableR8=false’.
Current version is: 1.4.77 (build b74371231cb896b02f83285efb055b7c00ff64d8 from go/r8bot (luci-r8-ci-archive-0-eqqf)).
android.enableR8=false
好了,現在能編譯通過了。但是未來呢?
還有另一個方法:
buildTypes裏的編譯環境全都不要混淆,like this:
minifyEnabled false
zipAlignEnabled false
shrinkResources false
好了,編譯也通過了,但是…坑爹呢?!!!
然後按照提示來到了官網提交問題(bug):issue地址
果不其然,我被偉大的牆卡住了。。。
先就這樣吧。
哈哈哈哈哈哈哈