1. 程式人生 > >使用gradle編譯時遇到的一些問題

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