: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 Studio, у меня было мало обновлений для Android API 22. После обновления приложение продолжало выдавать мне это сообщение об ошибке. Я скачал JDK 8 и попытался запустить, но ничего не вышло. Позже я понизился до JDK 7 после этого стека, но все еще не исправил его. Можно ли использовать Java 8 для разработки под Android?

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

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

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

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

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

Процесс 'команда' C: \ Program Files \ Java \ jdk1.8.0_31 \ bin \ java.exe '' завершен с ненулевым значением выхода 2

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

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

13 ответов

Решение

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

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

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

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

defaultConfig {
        multiDexEnabled true
}

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

Надеюсь, этот пост поможет всем

У меня была такая же проблема, когда я компилировал сервисы 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

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

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

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

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

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

Поскольку я уже включал файлы *.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'

}

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

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

Удалить 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.+'
}

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

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

Возможно для этой проблемы вы получили означает, что вы добавили один и тот же файл liberay более чем один раз

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

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

Для меня проблема заключалась в том, что я использовал разные версии "API-интерфейсов сервисов Google Play"

До: Нажмите, чтобы увидеть изображение

После: Нажмите, чтобы увидеть изображение

Другие вопросы по тегам