Я получаю эту ошибку при выполнении моего приложения для Android (я очистил его, а затем собрал, но ошибка все еще присутствует)
- Синхронизация: ОК
- Сделать проект: ОК
- Чисто: ОК
- Run: Ошибка
Ошибка: не удалось выполнить задачу ': app: dexDebug' .com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: обработать команду 'C: \ Program Files \ Java \ jdk1.7.0 _25 \ bin \ java.exe '' завершено с ненулевым значением выхода 2
Мой файл Gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.rzr.rzevallosr.miappdepruebas"
minSdkVersion 19
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// This library handles authentication and authorization
compile 'com.spotify.sdk:spotify-auth:1.0.0-beta9@aar'
// This library handles music playback
compile 'com.spotify.sdk:spotify-player:1.0.0-beta9@aar'
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:recyclerview-v7:21.0.+'
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
compile 'com.squareup.okhttp:okhttp:2.2.0'
compile files('libs/spotify-web-api-android-master-0.1.0.jar')
compile files('libs/okio-1.3.0.jar')
}
РЕДАКТИРОВАТЬ: я не видел "compile fileTree (dir: 'libs', include: ['* .jar'])", он компилировал мои библиотеки дважды, поэтому я просто прокомментировал:
//compile 'com.squareup.retrofit:retrofit:1.9.0'
//compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
//compile 'com.squareup.okhttp:okhttp:2.2.0'
//compile files('libs/spotify-web-api-android-master-0.1.0.jar')
//compile files('libs/okio-1.3.0.jar')
и работает нормально.
android
asp.net-web-api
gradle
build.gradle
Maverick.pe
источник
источник
Ответы:
Вполне возможно, что эта проблема связана с превышением предела dex 65К, наложенного Android. Эта проблема может быть решена либо путем очистки проекта, а также удаление некоторых неиспользуемых библиотек и методов из зависимостей в build.gradle, или путем добавления multidex поддержки.
Итак, если вам нужно сохранить библиотеки и методы, вы можете включить поддержку multi dex, объявив ее в конфигурации gradle.
Вы можете узнать больше о поддержке multidex и разработке приложений с использованием методов более 65K здесь .
источник
./gradlew assembleDebug --stacktrace --debug
. Я видел эту ошибку в моем случаеcom.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
Для меня проблема заключалась в том, что я поместил ненужный код библиотеки complie в build.gradle
который вызывал более 65 тыс. методов, поэтому удалил его, синхронизировал gradle, очистил проект, а затем снова запустил, а затем эта ошибка прекратилась. Мне нужны были только карты и gcm, поэтому я поставил эти строки и синхронизировал проект
Привет люди, я снова столкнулся с этой проблемой, и на этот раз это было из-за изменения версии инструментов сборки, и мне действительно потребовалось включить multidex..так я добавил эти файлы build.gradle моего приложения ..
И создайте класс, который расширяет класс Application и включает этот метод в класс.
также включить в метод OnCreate тоже
источник
На всякий случай, если кто-то все еще борется с этим и не имеет ни малейшего представления, почему это происходит и как это исправить. На самом деле это ошибка
может быть много причин, но, разумеется, не связанных с вашей версией JDK, так что не тратьте свое время в неправильном направлении. Это две основные причины для этого
Первый случай можно исправить следующим образом: Узнайте, какие зависимости вы включали несколько раз. Для этого выполните следующую команду в Android Studio Terminal
это вернет все зависимости, но jar-файлы, которые вы включаете из папки lib, пытаются избавиться от дублирования, помеченного звездочкой (*), это не всегда возможно, но в некоторых случаях вы все еще можете это сделать, после этого попытайтесь исключить модули, которые включены много раз, вы можете сделать это так
Во втором случае, когда вы превышаете предельное значение метода, попробуйте минимизировать его, удалив включенные библиотеки (обратите внимание, это звучит как первое решение), если нет способа сделать это, добавьте multiDexEnabled true в ваш defaultConfig
это увеличивает предел метода, но это не лучшая вещь из-за возможных проблем с производительностью. ВАЖНО! Добавление только
multiDexEnabled true
вdefaultConfig
недостаточно на всех устройствах под управлением Android <5 Lollipop приведет к неожиданному поведению иNoClassDefFoundError
. как решить это описано здесьисточник
Я не знал (к тому времени), что "compile fileTree (dir: 'libs', include: ['* .jar'])" компилирует все, что имеет расширение jar в папке libs, поэтому я просто комментирую (или удаляю) это линии:
и работает нормально. Спасибо, в любом случае! Виноват.
источник
compile fileTree(dir: 'libs', include: ['*.jar'])
в градле. Это помогло мне.compile fileTree(dir: 'libs', include: ['*.jar'])
но она все еще показывает ту же ошибку.У меня была та же проблема, и я исправил удаление ненужной библиотеки
Я удалил эту библиотеку и смог запустить проект без проблем.
источник
Моя проблема была решена путем включения multiDex для отладочных сборок.
источник
Я отклоняю встроенный JDK (в 32-разрядной версии), потому что встроенный JDK является 64-разрядным
Щелкните правой кнопкой мыши ваш проект -> Открыть настройки модуля -> Расположение SDK -> Снимите флажок Использовать встроенный JDk, затем установите путь JDK, например, в Ubuntu / usr / lib / jvm / java-8-openjdk-i386
источник
echo $JAVA_HOME
для путиВозможная проблема: Вы превысили предел dex 65k методов. Может быть, вы добавили какую-то библиотеку или несколько методов до возникновения проблемы?
источник
Если вы уже обновили свой SDK и также используете google-play-services, вам необходимо позаботиться о зависимости, поскольку существуют некоторые конфликты с:
Выполните следующие действия: compile 'com.google.android.gms: play-services: +' Заменить на compile 'com.google.android.gms: play-services: 6.5.87'
Примечание. Здесь «6.5.87» - это версия службы Google Play. Надеюсь, это поможет..
источник
Я удалил android-support-v4.jar из папки libs и он работает !!!
если ваш проект выдает ошибку, проверьте файл build.gradle
источник
В моем случае проблема заключалась в том, что новая библиотека (зависимость gradle), которую я добавил, основывалась на некоторых других зависимостях, и две из этих базовых зависимостей конфликтовали / конфликтовали с некоторыми зависимостями других библиотек / зависимостей в моем сценарии сборки. В частности, я добавил Apache Commons
Validator
(для проверки электронной почты), и две его зависимости (Apache CommonsLogging
и Apache CommonsCollections
) конфликтовали с зависимостями, используемыми Robolectric (поскольку в моем пути сборки присутствовали разные версии одних и тех же библиотек). Поэтому я исключил эти конфликтующие версии зависимостей (modules
) при добавлении новой зависимости (Validator
):Вы можете просмотреть зависимости вашего модуля (ов) gradle (в вашем проекте может быть только один модуль) с помощью следующей команды gradle (я использую упаковщик gradle, который создается для вас, если вы создали свой проект в Android Studio / Intellij Идея). Запустите эту команду в корневом каталоге вашего проекта:
./gradlew: ВАШЕ ИМЯ МОДУЛЯ: зависимости
После добавления этих
exclude
директив и повторного запуска я получил сообщениеduplicate file
об ошибкеNOTICE.txt
, которое используется некоторыми библиотеками Apache Commons, такими как Logging и Collections. Мне пришлось исключить этот текстовый файл при упаковке. В моем build.gradle я добавил:Оказалось, что новая библиотека (the
Validator
) может работать с более старыми версиями своих зависимостей / модулей (которые уже импортированы в мой путь сборки другой библиотекой (Robolectric)). Это имело место с этой конкретной библиотекой, но другие библиотеки могли бы использовать самый последний API базовых зависимостей (в этом случае вы должны попытаться проверить, могут ли другие библиотеки, которые полагаются на конфликтующий модуль / зависимость, работать с более новая версия (исключая более старую версию модуля / зависимости в записях этих библиотек)).источник
В моем случае я получил эту ошибку, когда конфликтуют 2 или более библиотек (одна и та же библиотека, но разные версии). Проверьте ваше приложение build.gradle в блоке зависимостей.
источник
Есть две альтернативы, которые будут работать наверняка:
Если вышеуказанный метод не сработал, попробуйте следующий.
Добавьте следующее в файл build.gradle на уровне приложения
источник
Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'. > java.util.zip.ZipException: duplicate entry: android/support/v4/view/MotionEventCompatEclair.class
, что мне делать дальше?Обновление Java SDK до последней версии
1.7.0_79
и обновлениеSDK Location
подProject Structure
неполной версии решили проблему для меня.источник
Моя проблема была в том, что помимо
У меня был и этот след:
Проблема заключалась в том, что я добавлял один и тот же класс в две разные библиотеки. Удалив файл class / jar из одной из библиотек, проект запустится правильно
источник
Для меня я добавил целые зависимости PlayStore
Но мне нужна была только карта Google, поэтому я уточнил ее, и ошибка была устранена.
источник
В моем случае проблема была в версии инструментов сборки, которая была 23.0.0 RC3, и я изменил на 22.0.1, и моя проблема исправлена.
источник
Возможно, вы используете некачественный кабель / неисправный кабель для подключения вашего устройства к ПК, я заменил кабель, и он мне помог.
источник
Эта ошибка происходит из-за использования большего количества библиотек. В моем случае эта ошибка вызвана "compile" com.google.android.gms: play-services-9.4.0 '. Чтобы избежать этой ошибки, используйте необходимые библиотеки. Например, если вы хотите использовать Карты в вашем приложении. Затем используйте compile 'com.google.android.gms: play-services-maps: 9.4.0'. При добавлении зависимости от сервисов Google Play укажите только необходимые библиотеки. По умолчанию он включает все библиотеки.
источник
В вашем
gradle.build
файле используйте этоИ это прекрасно работает.
источник
Если вы хотите увидеть, что именно является причиной ошибки, попробуйте построить свой проект через терминал gradle, как это
./gradlew assembleDebug --stacktrace --debug
. Я видел следующую ошибку в моем случаеcom.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
Это произошло, когда я пытался включить Google Maps в свой проект. Чтобы это исправить, я просто проверил библиотеки, которые я включал
compile 'com.google.android.gms:play-services:9.8.0'
Я просто изменил это на
compile 'com.google.android.gms:play-services-maps:9.8.0'
и проблема исчезла
источник
У меня была та же ошибка после преобразования моего проекта в
Kotlin
. Моя проблема состояла в том, что мое местоположение jre было изменено на неверный путь во время процесса (интересно, почему это могло случиться ... заставило меня терять время). Исправил это, выполнив это:Снимите
Use embedded JDK
флажок с опции, которая указывала на старую установку JDK, и выбрал правильную:После изменения ошибка исчезла
источник
Работал для меня :)
я обновил Java до последней версии 8, ранее было 7, а затем перешел в OPEN MODULE SETTING, щелкнув правой кнопкой мыши по проекту, и изменил путь JDK на / usr / lib / jvm / java-8-oracle новый java 8 установлен. И перезапустите студию
проверьте / usr / lib / jvm для имени папки Java 8
Я использую убунту
источник