1

我在爲Google Calendar API添加一行時遇到問題build.gradle。這裏是錯誤:MultiDex問題 - 任務執行失敗':app:dexDebug'

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) 
Error:Execution failed for task ':app:dexDebug'. 
> com.android.ide.common.process.ProcessException: 
org.gradle.process.internal.ExecException: Process 'command 
'/usr/java/jdk1.7.0_79/bin/java'' 

finished with non-zero exit value 2 
Information:BUILD FAILED 
Information:Total time: 14.802 secs 
Information:1 error 
Information:2 warnings 
Information:See complete output in console 

我已經嘗試了很多選項,但沒有任何工作。當我添加"multiDex true"defaultConfig,程序兼容性庫沒有連接到我的項目,並與java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$layout.

這裏應用程序崩潰是我build.gradle

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.2" 

defaultConfig { 
    applicationId "ua.appp.appp" 
    minSdkVersion 14 
    targetSdkVersion 21 
    versionCode 15 
    versionName "2.1.0" 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.0.0' 

    compile 'com.google.android.gms:play-services:6.5.87' 
    compile 'com.google.apis:google-api-services-calendar:v3-rev119-1.19.1' 
    compile 'com.google.api-client:google-api-client:1.19.1' 
    compile 'com.google.api-client:google-api-client-android:1.19.1' 
    compile 'com.google.api-client:google-api-client-gson:1.19.1' 

    compile 'com.github.navasmdc:MaterialDesign:[email protected]' 
    compile 'com.afollestad:material-dialogs:0.6.5.2' 
    compile 'com.nhaarman.listviewanimations:lib-core:[email protected]' 
    compile 'com.nhaarman.listviewanimations:lib-manipulation:[email protected]' 
    compile 'com.nhaarman.listviewanimations:lib-core-slh:[email protected]' 
} 

PS:一些有趣的事實:當我這些庫添加到一個測試項目,代碼編譯和工作正常,沒有錯誤。

+0

我建議檢查是否存在應用程序的一些子模塊對這個庫的另一個依賴,還可清洗,有時重建項目幫助bu ild錯誤。此外,我會建議檢查庫的版本,並檢查它是否實際上有你正在嘗試使用的方法和類。然而,我不能說,我看到任何實際問題在這裏...你有沒有嘗試刪除這個庫的所有用法,但離開依賴? P.S. Устэкаестьрусскаяверсия,гдеможнообщатьсянарусскомязжкебезпроблем – Chaosit

回答

1

當您添加multidex:true不要忘了做一個Application類項目從MultiDexApplication或擴展了很多不好的東西會發生

public class YourApplication extends MultiDexApplication { 
    .......... 
} 

而且不要忘了這是(在版本可能會隨時間而改變,當你讀到這,請確保您使用最新版本)

dependencies { 
    'com.android.support:multidex:1.0.1' 
} 
+0

beautiful = - )Thank's = - ) –

+0

沒問題。我會說你失去了童貞,你的應用打破了2^16的方法限制。 ^。^ –

相關問題