Поддержка MultiDex в приложении Android-приложения

Я хочу использовать совместимые библиотеки Android L. После добавления соответствующего кода в gradle, я получаю ошибку:

Error Code: 2 Output: objc[36290]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined. UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: method ID not in [0, 0xffff]: 65536 at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:501) at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:276) at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:490) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:167) at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) at com.android.dx.command.dexer.Main.run(Main.java:230) at com.android.dx.command.dexer.Main.main(Main.java:199) at com.android.dx.command.Main.main(Main.java:103) 

Я видел вопросы об этом здесь и здесь , и опробовал решение из этого сообщения в блоге , и я все еще получаю сообщение об ошибке, где в случае сообщения в блоге я получаю:

  Error Code: 2 Output: objc[36323]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined. UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Library dex files are not supported in multi-dex mode at com.android.dx.command.dexer.Main.runMultiDex(Main.java:322) at com.android.dx.command.dexer.Main.run(Main.java:228) at com.android.dx.command.dexer.Main.main(Main.java:199) at com.android.dx.command.Main.main(Main.java:103) 

Это мои настройки градиента для android:

 android { compileSdkVersion 21 buildToolsVersion "20.0.0" defaultConfig { applicationId "com.my.package" minSdkVersion 9 targetSdkVersion 21 } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt' } } 

}

Это мои зависимости:

 dependencies { compile project(':libraries:ecoGallery') compile project(':libraries:facebookSDK') compile 'com.android.support:support-v4:21.0.0' compile 'com.android.support:appcompat-v7:21.0.0' compile 'com.google.android.gms:play-services:6.1.71' compile 'com.j256.ormlite:ormlite-android:4.48' compile 'com.j256.ormlite:ormlite-core:4.48' compile 'com.mixpanel.android:mixpanel-android:4.3.1@aar' compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3' compile 'com.nineoldandroids:library:2.4.0' compile 'oauth.signpost:signpost-commonshttp4:1.2.1.2' compile 'oauth.signpost:signpost-core:1.2.1.2' compile 'com.uservoice:uservoice-android-sdk:+@aar' compile 'com.newrelic.agent.android:android-agent:4.87.0' compile 'com.google.guava:guava:18.0' compile files('libs/android-support-multidex.jar') 

}

Есть ли у кого-нибудь идеи, что я могу делать неправильно?

Solutions Collecting From Web of "Поддержка MultiDex в приложении Android-приложения"

Gradle plugin v0.14.0 для Android добавляет полную поддержку multidex .
Удалите все сделанные вами изменения build.gradle (для multidex) и просто добавьте следующее:

 android { defaultConfig { ... multiDexEnabled = true } } 

Попытка добавить следующий код к вашему build.gradle, работала для меня.

 android{ ... dexOptions { preDexLibraries = false } afterEvaluate { tasks.matching { it.name.startsWith('dex') }.each { dx -> if (dx.additionalParameters == null) { dx.additionalParameters = ['--multi-dex'] } else { dx.additionalParameters += '--multi-dex' } } } ... } 

Вместо того, чтобы включать всю библиотеку google, используйте только те, которые вам нужны.

Напр. использовать:

  compile 'com.google.android.gms:play-services-maps:7.8.0' compile 'com.google.android.gms:play-services-location:7.8.0' 

вместо

 compile 'com.google.android.gms:play-services:7.8.0' 

Попробуйте отключить «Мгновенный запуск»:

В андроид-студии: Файл меню -> Настройки

В сборке, выполнении, развертывании -> Мгновенный запуск

UNCHECK Включено Мгновенный запуск в режиме «горячей» замены / изменения ресурсов при развертывании (по умолчанию включено)