Инструменты сборки 21.1.2 – НЕОПРЕДЕЛЕННЫЙ ТОП-УРОВЕННЫЙ ИСКЛЮЧИТЕЛЬНЫЙ

Я внезапно сталкиваюсь с этой проблемой при создании / запуске моего проекта.

Error:Execution failed for task ':app:dexDebug'. > com.android.ide.common.internal.LoggedErrorException: Failed to run command: /Users/aidanfollestad/Documents/android-sdk/build-tools/21.1.2/dx --dex --no-optimize --output /Users/aidanfollestad/Android Projects/Impression/app/build/intermediates/dex/debug --input-list=/Users/aidanfollestad/Android Projects/Impression/app/build/intermediates/tmp/dex/debug/inputList.txt Error Code: 2 Output: 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) 

Мой файл Gradle содержит следующее:

 buildscript { repositories { maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'io.fabric.tools:gradle:1.14.+' } } apply plugin: 'com.android.application' apply plugin: 'io.fabric' apply plugin: 'versionPlugin' android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "com.afollestad.impression" minSdkVersion 16 targetSdkVersion 21 versionCode 19 versionName "0.7.0" } } repositories { mavenCentral() maven { url 'https://maven.fabric.io/public' } } dependencies { compile 'com.android.support:appcompat-v7:21.0.+' compile 'com.android.support:recyclerview-v7:21.0.+' compile 'com.koushikdutta.ion:ion:2.0.+' compile 'com.github.chrisbanes.photoview:library:1.2.+' compile 'com.afollestad:material-dialogs:0.4.5' compile 'com.google.android.gms:play-services:6.5.87' compile 'com.google.api-client:google-api-client:1.18.0-rc' compile 'com.google.api-client:google-api-client-android:1.18.0-rc' compile 'com.google.api-client:google-api-client-gson:1.18.0-rc' compile 'com.google.apis:google-api-services-drive:v2-rev152-1.19.0' compile('com.crashlytics.sdk.android:crashlytics:2.1.0@aar') { transitive = true; } } versionPlugin{ buildTypesMatcher = 'release' supportBuildNumber = false fileNameFormat = '$appPkg-v$versionName-$versionCode' } 

Моя библиотека материалов-библиотек ссылается только на AppCompat-v7, ту же версию, на которую ссылается этот файл Gradle. У меня нет JAR в моей папке libs, на которую я ссылаюсь. Я не знаю, какие библиотеки мешают друг другу (кроме возможности Play Services и AppCompat?). Любые идеи или решения?

Я заметил ссылки Ion v4 библиотеки поддержки ( https://github.com/koush/ion/blob/master/ion/build.gradle#L17 ), возможно, это может помешать работе AppCompat?

Попробуйте включить multidex build.gradle:

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

Ссылка: Не удалось выполнить идентификатор метода dex: не в [0, 0xffff]: 65536

Вы можете использовать ограничение 65k методов. Вместо использования multiDex попробуйте использовать Google Play Services с большей детализацией. Следуйте этому руководству , вы можете использовать только те части, которые вы хотите. Вероятно, это устранит вашу проблему.

Это исключение показывает, что ваш проект достиг максимального количества методов 65536. Вы просто делаете ниже работу. Он работал для меня

Шаг 1:
Внутри build.gradle

  defaultConfig { multiDexEnabled = true } 

Шаг 2:

Внутри тега приложения манифеста

  android:name="android.support.multidex.MultiDexApplication" or 

Шаг 3: если вы используете класс, который расширяет приложение, выполните следующие действия:

  public class MyApplication extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } } 

Шаг 4:

Внутри build.gradle

  android{ dexOptions { incremental true javaMaxHeapSize "4g" } }