使用gradle編譯時遇到的一些問題
阿新 • • 發佈:2019-02-02
1. 問題1:執行gradle clean build時出現如下的錯誤資訊,編譯失敗。
注: 某些輸入檔案使用或覆蓋了已過時的 API。
注: 有關詳細資訊, 請使用 -Xlint:deprecation 重新編譯。:app:dexDebug
UNEXPECTED TOP-LEVEL ERROR:
java.lang.OutOfMemoryError: GC overhead limit exceeded
:app:dexDebug FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/local/devtools/jdk1.7.0_51/bin/java'' finished with non-zero exit value 3
解決方案及原理:
這裡直接剽竊了CSDN上其他夥伴的帖子
http://blog.csdn.net/t12x3456/article/details/40837287
這篇帖子寫的很詳細。
2. 僅在build.gradle中新增完關於multi-dex的相關配置,然後編譯成功了,安裝執行,發生崩潰。
java.lang.VerifyError:com/artifex/mupdfdemo/MuPDFCore at com.artifex.mupdfdemo.MuPDFActivity.openFile(MuPDFActivity.java:181)
上網各種查,好像沒有這方面資料,其實很簡單,就是因為沒有老老實實地按照帖子,在AndroidManifest.xml活著Application.java中對MultiDex加入相關配置。
同樣參見 http://blog.csdn.net/t12x3456/article/details/40837287
中關於
二. 如果你的工程中已經含有Application類,那麼讓它繼承android.support.multidex.MultiDexApplication類,
如果你的Application已經繼承了其他類並且不想做改動,那麼還有另外一種使用方式,覆寫attachBaseContext()方法:
的建議。
我用的是複寫attachBaseContext的方法。
@Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); }