: app: dexDebug ExecException завершен с ненулевым значением выхода 2

Может ли кто-нибудь помочь мне со следующей ошибкой. Когда я очищаю проект, не отображается ошибка, но каждый раз, когда я пытаюсь запустить, я получаю это сообщение.

Ошибка: выполнение выполнено для задачи ': app: dexDebug'.

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: процесс "команда" C:\Program Files\Java\jdk1.8.0_45\bin\java.exe '' завершен с ненулевым значением выхода 2

Приложение запускалось без ошибок, но когда моя система разбилась и перезапустила студию Android, у меня было мало обновлений для Android API 22. После обновления приложение продолжает давать мне это сообщение об ошибке. Я загрузил JDK 8 и попытался запустить, но не работал. Позже я перешел на JDK 7 после этого поста, но все еще не исправил его. Возможно ли использовать Java 8 для разработки Android?

Я просмотрел множество подобных вопросов, но никто не работает для меня. Некоторые аналогичные проблемы, обнаруженные в стеке, были

почему java.exe выходит со значением 1 в студии Android

Ошибка: выполнение выполнено для задачи ': app: dexDebug'. > comcommand завершена с ненулевым значением выхода 2

Java закончила с ненулевым значением выхода 2 - Android Gradle

java.exe закончил с ненулевым значением выхода 2

Обработать команду 'C:\Program Files\Java\jdk1.8.0_31\bin\java.exe' 'закончил с значением, отличным от нуля, 2.

Я просмотрел зависимости в gradle, чтобы увидеть, есть ли какой-либо конфликт, но не найден.

Я даже попытался скопировать код в новый проект и запустить его, но все равно безуспешно. Любой, кто столкнулся с тем же вопросом и решил его, пожалуйста, помогите мне.

Ответ 1

После нескольких дней тестирования, наконец, можно было исправить эту проблему. Проблема с одним из моих файлов .jar. Я должен был удалить каждую банку и проверить один за другим, пока не найду ее. Я удалил файл .jar и очистил проект и успешно сработал. Если кто-то сталкивается с подобной проблемой, проверьте свой файл jar один за другим.

Ответ 2

У меня была та же ошибка

app: dexDebug ExecException завершен с ненулевым значением выхода 2

Я решаю его, добавив эту строку кода

defaultConfig {
        multiDexEnabled true
}

Причина в том, что я использовал слишком много библиотек

Надеюсь, что этот пост поможет кому-то

Ответ 3

У меня была такая же проблема, когда я скомпилировал сервисы Google Play для моих зависимостей.

Моя ошибка заключалась в том, что я собирал пакет enitre, как этот

компилировать 'com.google.android.gms: play-services: 8.3.0'

Вместо этого, когда я попробовал выборочный компилятор, он работал. В моем случае я использовал для входа в Google, поэтому он должен был быть

компилировать 'com.google.android.gms: play-services-auth: 8.3.0'.

Более подробная информация находится в документе. https://developers.google.com/android/guides/setup#split

Надеюсь, что когда-нибудь кому-нибудь это поможет:)

Ответ 4

Я знаю это поздно. Но это то, что на самом деле сработало для меня.

1. Build > Clean Project
2. Close gradle daemon processes (ps -e| grep gradle  //this will list gradle processes)
3. File > Invalidate caches & Restart

Я надеюсь, что это сработает для всех.

Ответ 5

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

Поскольку я уже включал файлы *.jar в список файлов, которые нужно скомпилировать, в списке зависимостей не было необходимости в дополнительных записях.



До:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.parse.bolts:bolts-android:1.+'
    compile fileTree(dir: 'libs', include: 'Parse-*.jar')
}

После:

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])

compile 'com.android.support:appcompat-v7:22.2.0'

}

Ответ 6

Для будущих читателей. Если вы используете свои собственные AAR и обновили систему с общей зависимостью, вы также можете просто попробовать очистить проект. В Android Studio "Build" → "Чистый проект".

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

Ответ 7

Удалить compile 'com.parse:parse-android:1.+'

добавить эту строку compile fileTree(dir: 'libs', include: ['Parse-*.jar'])

Наконец, это будет выглядеть как

dependencies {
compile fileTree(dir: 'libs', include: ['Parse-*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.facebook.android:facebook-android-sdk:4.5.0'
compile 'com.android.support:design:22.2.0'
compile 'com.parse.bolts:bolts-android:1.+'
}

Ответ 8

Я использовал зависимость robolectric в моем проекте Android. Я удалил все зависимости robolectric в gradle и удалил все мои тесты robolectric, затем я построил приложение и, наконец, смог запустить проект Android. Надеюсь, это сработает для нас.

Ответ 9

У меня возникла такая же проблема, когда я пыталась добавить библиотеку SignalR Java client в зависимости от проекта. Я сначала изменил целевой JDK моего приложения с 1.8.0_XX на 1.7.0_XX, но он не сработал. Затем я сменил проект SignalR на целевой 1.7.0_XX, перестроил его и добавил в папку проекта libs вместо первой сборки (которая была в 1.8.0_XX), и это чудесно сработало.

Ответ 11

Проверьте, есть ли 2 класса с одинаковым именем. Каждое имя класса должно быть уникальным.

Ответ 12

У меня была та же проблема, только я сделал проект Biuld → Rebiuld, и он снова работает;)