2015-06-03 34 views
1

我目前正試圖在我的應用程序上實現android設計庫,但在更新我的SDK等後遇到很多問題後,我在實際使用它時遇到了問題。運行應用程序(gradle這個已經同步,乾淨和項目重建)時,它給我這個錯誤:添加支持設計庫後,應用程序不會運行

* What went wrong: 
Execution failed for task ':app:dexDebug'. 
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_45\bin\java.exe'' finished with non-zero exit value 2 

我不知道爲什麼和如何發生,但它只是觸發,當我添加的小吃吧我行代碼:

Snackbar 
       .make(getWindow().getDecorView().getRootView(), R.string.message, Snackbar.LENGTH_LONG) 
       .setAction(R.string.close, new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 

        } 
       }) 
       .show(); 

任何人都可以指出在哪裏以及如何發生這個問題?我也檢查了我的所有圖書館,並且沒有任何重複。 TIA

+0

請發佈完整的錯誤日誌。 –

+0

那麼這是我唯一的錯誤,那就是爲什麼我失去了爲什麼會發生這種情況:( – KaHeL

+0

這個錯誤總是出現在一些庫衝突時,請檢查您的日誌記錄並複製整個日誌。有助於找到真正的原因 –

回答

1

過了一段時間我終於解決了它。 Gradle控制檯不會爲我提供問題的真正原因,而只是返回我在問題中提供的那些行。我所做的就是運行gradle這個dexDebug --stacktrace --info --debug那麼真正的問題似乎是:

UNEXPECTED TOP-LEVEL EXCEPTION: 
com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536 
    at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:502) 
    at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:277) 
    at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:491) 
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:168) 
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:189) 
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454) 
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303) 
    at com.android.dx.command.dexer.Main.run(Main.java:246) 
    at com.android.dx.command.dexer.Main.main(Main.java:215) 
    at com.android.dx.command.Main.main(Main.java:106) 

現在,這可以通過以下方式解決:

defaultConfig { 
     ... 
     multiDexEnabled = true 
    } 

,但是這不應該成爲問題,當我在檢查外部庫我發現劇中的服務7.5.0版本也只是使我這個問題:

enter image description here

所以我道將版本升級到6.5.87。再次刪除我的build.gradle上的multiDexEnabled,同步和清理,現在它的工作原理! :D