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

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

enter image description here

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

Ответ 1

Мы видели эту проблему в прошлом, когда наш проект был компиляции с версией Java, отличной от той, которая используется для компиляции библиотеки. magic number используется только для определить файлы классов, так что это не проблема. Проблема заключается в java-версии (0034.0000 == Java 8).

Самый простой способ - это нацелить Java 6, для чего может потребоваться удаление более синтаксиса из вашего кода. В нашем случае, как проект, так и библиотека были нашими, поэтому мы смогли добавить следующее, чтобы заставить нужную нам версию Java:

Библиотеки Android

для библиотек android, добавьте этот код в объект расширения "android":

android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_6
        targetCompatibility JavaVersion.VERSION_1_6
    }
    ...
}

Библиотеки Java

для java-библиотек, добавьте этот код на "верхний уровень":

apply plugin: 'java'

version '1.8.1'
group   'com.yourcompany.package'

sourceCompatibility = JavaVersion.VERSION_1_6   //these two lines
targetCompatibility = JavaVersion.VERSION_1_6   //are the only ones that matter

ПРИМЕЧАНИЕ: последние две строки являются единственными, которые важны, я добавил остальных, чтобы показать, где эти строки принадлежат, в отношении остальной части вашего файла сборки gradle.

Ответ 2

Для нас это было вызвано версией инструментальных средств Android SDK. Возникла проблема с v23.x, но не v22.x. Вам нужно удалить v23 для кордовы, чтобы выбрать v22.

Возможно, это скорее симптом, чем причина, но это может раскрыть кого-то в той же ситуации.

Ответ 3

Хотя ваша проблема кажется исправленной, я оказался здесь с подобной ошибкой (при создании образцов с сайта developer.android.com). В случае, если это полезно для других, я смог его решить, установив JAVA_HOME в соответствующее значение. В моем случае это было:

export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64

Ответ 4

добавление:

sourceCompatibility = JavaVersion.VERSION_X_X
targetCompatibility = JavaVersion.VERSION_X_X

в файле проекта Android gradle и файл библиотеки Java gradle работал у меня.

Извините, что я бы добавил +1, но не имел достаточно высокой репутации.