使用gradle編譯時遇到的一些問題

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);
}





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章