Android Studio: Gradle - сбой сборки - выполнение выполнено с ошибкой для задачи: dexDebug '
Ошибка:
Gradle: Execution failed for task ':vertretungsplan:dexDebug'.
> Failed to run command:
P:\Android-Studio\sdk\build-tools\18.0.1\dx.bat --dex --output P:\Projekte\VertretungsplanProject\vertretungsplan\build\libs\vertretungsplan-debug.dex P:\Projekte\VertretungsplanProject\vertretungsplan\build\classes\debug P:\Projekte\VertretungsplanProject\vertretungsplan\build\dependency-cache\debug P:\Android-Studio\sdk\extras\android\m2repository\com\android\support\support-v4\18.0.0\support-v4-18.0.0.jar P:\Projekte\VertretungsplanProject\vertretungsplan\libs\commons-io-2.4.jar P:\Projekte\VertretungsplanProject\vertretungsplan\build\exploded-bundles\VertretungsplanProjectLibrariesActionbarsherlockUnspecified.aar\classes.jar
Error Code:
2
Output:
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing de/MayerhoferSimon/Vertretungsplan/LoginActivity$2.class
...while processing de/MayerhoferSimon/Vertretungsplan/LoginActivity$2.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing de/MayerhoferSimon/Vertretungsplan/MainActivity$1.class
...while processing de/MayerhoferSimon/Vertretungsplan/MainActivity$1.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing de/MayerhoferSimon/Vertretungsplan/YQL/YqlVplanParser.class
...while processing de/MayerhoferSimon/Vertretungsplan/YQL/YqlVplanParser.class
3 warnings
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.util.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:592)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:550)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:531)
at com.android.dx.merge.DexMerger.mergeDexBuffers(DexMerger.java:168)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:186)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:300)
at com.android.dx.command.dexer.Main.run(Main.java:232)
at com.android.dx.command.dexer.Main.main(Main.java:174)
at com.android.dx.command.Main.main(Main.java:91)
Структура проекта:
![enter image description here]()
build.gradle(actionbarsherlock)
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android-library'
dependencies {
compile 'com.android.support:support-v4:18.0.0'
}
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
defaultConfig {
minSdkVersion 8
targetSdkVersion 11
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
res.srcDirs = ['res']
}
}
}
build.gradle(vertretungsplan)
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/commons-io-2.4.jar')
compile project(':libraries:actionbarsherlock')
}
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
defaultConfig {
minSdkVersion 8
targetSdkVersion 11
}
}
settings.gradle
include ':vertretungsplan', ':libraries:actionbarsherlock'
Как я могу исправить эту ошибку?
Ответы
Ответ 1
Правильный ответ: некоторые из ваших файлов jar не компилируются.
Вы должны зайти в свой файл build.gradle в свой проект и посмотреть в своих зависимостях.
Если вы просто импортируете некоторые файлы jar, вы можете попытаться удалить их и добавить их по одному. Это поможет вам определить, какая из них вызывает ошибку.
В моем случае я сделал именно это, и когда я импортировал последний, приложение было скомпилировано. Поэтому я думаю, что реальная проблема заключалась в том, что я импортировал слишком много сразу. Но теперь все работает.
Ответ 2
У меня внезапно возникла такая же проблема, после каких-либо примечательных изменений.
Я решил его, удалив каталог app/build
и gradle создаст новый проект.
Ответ 3
Вы должны проверить, снова ли импортирован тот же JAR. В моем случае был класс внутри банки, который импортировался в другую банку. Поэтому просто проверьте, включен ли какой-либо файл lib/class во второй проект!
Ответ 4
У меня такая же ошибка, когда я попытался скомпилировать java файл утилиты utils в eclipse с помощью Java JRE 1.8 и использовать его в моем/libs/в Android Studio 1.1.0.
У меня была установлена Android Studio для использования JDK1.8.0.
Я переключил Eclipse на работу с JRE 1.7, и ошибка была исправлена.
Eclipse: Window- > Preferences- > Java tab- > Compiler → Уровень соответствия 1.7. Скорее всего, вам будет предложено переключить вашу библиотеку JRE на jdk1.7.x_x.
Возможно, вам придется отключить "сжатие банки" при экспорте. Я не проверял, был ли это эффект или нет. Я сомневаюсь, что это было связано.
Ответ 5
У меня была такая же проблема.
В моем случае проблема началась после перезагрузки.
Я закрыл приложение, затем закрыл Android Studio (в моем случае V1.1.0) и, наконец, нормальное завершение работы. После этого я модифицировал один java файл, чтобы добавить объект RadioGroup, а затем появилась проблема.
Я решил проблему только с изменением простого "0" для "1" в конфигурационном файле Gradle, потому что основная причина проблемы была сгенерирована в процессе выполнения Gradle. Раньше у меня была версия 1.0.0, затем я изменил ее на "1.1.0", как указано на рисунках.
Расположение конфигурации Gradle изменено
![Location of the Gradle configuration a changed]()
Место, где я выбрал правильную версию (Файл → Настройки → Gradle → Экспериментальный
![Location where I took the right version from (File -> Settings -> Gradle -> Experimental]()
Ответ 6
Проблема НЕ о Execution failed for task ':dexDebug'
если вы посмотрите выше ошибки, показанной красным цветом, вы увидите это
![введите описание изображения здесь]()
Чтобы решить эту проблему, просто добавьте эти строки в свой build.gradle
файл
android {
dexOptions {
jumboMode = true
}
}
Для получения дополнительной информации проверьте этот вопрос: здесь
Ответ 7
Убедитесь, что ваш файл AndroidManifest содержит имя пакета в манифесте node.
Установка имени пакета исправила эту проблему для меня.
Ответ 8
Пользователи ANDROID STUDIO попробуйте следующее: -
Вам необходимо добавить следующие файлы в свои зависимости gradle:
compile 'com.android.support:multidex:1.0.0'
Затем добавьте ниже строку (приложение поддержки multidex) в свой манифест application
:
android:name="android.support.multidex.MultiDexApplication"
Ответ 9
Можно ли исправить это, добавив
compile 'com.android.support:support-v4:18.0.0'
для зависимостей в файле vertretungsplan build.gradle, компиляции, а затем удалите эту строку и снова скомпилируйте.
теперь он работает
Ответ 10
У меня была та же проблема, вы должны сделать:
File -> Invalidate Caches / Restart
Ответ 11
У меня была эта проблема, потому что я пытался использовать как библиотеку поддержки, так и appcompat:
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile 'com.android.support:support-v4:23.1.0'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.google.android.gms:play-services:8.3.0'
}
После того, как я удалил библиотеку поддержки и изменил ее на более раннюю версию, она скомпилировала:
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
/*compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'*/
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:design:22.2.0'
compile 'com.google.android.gms:play-services:8.3.0'
}
Ответ 12
У меня было две несовместимые зависимости.
Приведенные ниже зависимости вызвали ошибку.
compile 'com.google.android.gms:play-services-fitness:8.3.0'
compile 'com.google.android.gms:play-services-wearable:8.4.0'
Изменив зависимость пригодности к версии 8.4.0, я смог запустить приложение.
compile 'com.google.android.gms:play-services-fitness:8.4.0'
compile 'com.google.android.gms:play-services-wearable:8.4.0'
Ответ 13
Я нашел очень интересную проблему с Android Studio и обновлением mircrosoft в веб-браузере. Я обновил "тупо" до последней версии ie. конечно, Microsoft в своей бесконечной мудрости точно знает, что делать с безопасностью. Когда я попытался скомпилировать мое приложение, я продолжал получать сообщение об ошибке Gradle - сборка сбоя - выполнение выполнялось для задачи. глядя в стек, я увидел, что он не распознает путь к java.exe. Я обнаружил, что это странно, как только я смог скомпоновать накануне. Я добавил JAVA_HOME в env vars для системы, закрыл Android Studio и снова открыл ее. Низкий, и вот, если экран огненной стены не подскажет, хочу ли я все jave.exe через.
Что такое кластер!
Ответ 14
(Это может быть неправильный поток, поскольку ваша проблема кажется более конкретной, но это поток, который я нашел при поиске ключевых слов)
Несмотря на все хорошие подсказки, единственное, что помогло мне, и что я хотел бы поделиться на всякий случай, если все остальное не работает:
Удалите ваш каталог .gradle в своем домашнем каталоге и попросите его повторно загрузить/повторно загрузить Android Studio.
Исправлены всевозможные странные ошибки для меня, которые не были исправлены путем переустановки самой Android Studio и SDK.
Ответ 15
Причиной могут быть дублированные библиотеки после импорта из Eclipse IDE.
dependencies {
compile 'com.github.japgolly.android:svg-android:2.0.5'
compile 'com.google.android.gms:play-services:+'
compile 'com.android.support:appcompat-v7:21.0.3'
compile files('libs/androidannotations-api-2.7.1.jar')
compile files('libs/androidasync-2.1.2.jar')
//compile files('libs/google-play-services.jar')
compile files('libs/universal-image-loader-1.8.2.jar')}
У меня была такая же проблема, после комментария:
//compile files('libs/google-play-services.jar')
Приложение не получает ошибок.
Ответ 16
Я столкнулся с той же проблемой. Решено, сделав это.
Перейдите в actionbarsherlock → настройки модуля → зависимости. Удалите библиотеку поддержки v4. Внизу слева есть кнопка плюс, оттуда добавьте 1 Зависимость библиотеки (выберите поддержку-v4).
Разрешите gradle выполнить повторный и чистый проект.
Ответ 17
В моем случае я сделал Build > Clean Project
, и он сработает!
Ответ 18
Многие из ответов здесь - это пробная версия и ошибка, чтобы найти дубликаты зависимостей, но если вы немного прокрутите строку Execution failed for task ':app:dexDebug'.
, это даст вам подсказку о дублированиях
.
В моем случае у меня была следующая ошибка:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define L/com/parse/AbstractQueryController$1;
...
...
...
Execution failed for task ':app:dexDebug'.
Итак, я знал, что для исправления этой ошибки мне нужно найти дубликаты зависимостей, которые определяют parse.AbstractQueryController
В моем случае у меня было два импортированных модуля, которые загружались в две разные библиотеки Parse. Создание моего проекта загружает только одну исправленную мою проблему.
Ответ 19
Я также столкнулся с этой ошибкой, когда пакет в одном из моих файлов классов был неправильно записан. Многие из этих ответов сразу же переходят к файлам Jar, но я также проверял бы, чтобы ваши пакеты были написаны правильно.
Ответ 20
просто добавьте в build.gradle
compile 'com.parse.bolts: bolts-android: 1. +'
compile 'com.parse: parse-android: 1.11.0'
и синхронизировать проект с Gradle Файлы
Но не добавляйте парса синтаксического анализа в libs:) OKK
Ответ 21
Если вы также используете Dagger
или Butterknife
, вы должны добавить guava в качестве зависимости к вашему основному файлу build.gradle
, например classpath:
com.google.guava:guava:20.0
В противном случае, если у вас возникли проблемы с большей кучей для демона Gradle, вы можете увеличить добавление к вашему файлу radle
:
dexOptions {
javaMaxHeapSize "4g"
}
Ответ 22
Очистка проекта с помощью сборки в строке меню работает для многих сценариев ошибок в Android Studio и поэтому в этом случае.