Ошибка: не удалось выполнить задачу ':app:dexDebug'. com.android.ide.common.process.ProcessException
Ошибка: не удалось выполнить задачу ': app: dexDebug'.
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: процесс 'команда'C:\Program Files\Java\jdk1.8.0_40\bin\java.exe'' завершен с нулевое значение выхода 2
Я искал все подобные вопросы и решения, но они не помогают. Я надеюсь, что такие эксперты, как вы, придут.
Код проекта был загружен в bitbucket: https://tainule@bitbucket.org/tainule/numad-huizhang.git
У меня есть два модуля, приложение и конечная точка. Ниже из модуля: приложение:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "edu.neu.madcourse.huizhang1"
minSdkVersion 14
targetSdkVersion 21
versionCode 3
versionName "2.1"
// multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile "com.android.support:appcompat-v7:21.0.+"
compile 'com.google.android.gms:play-services:+'
compile 'com.google.guava:guava:18.0'
compile 'com.google.code.gson:gson:1.7.2'
compile 'org.apache.httpcomponents:httpmime:4.4-beta1'
compile 'org.apache.httpcomponents:httpclient:4.4-beta1'
compile 'org.apache.httpcomponents:httpcore:4.4-beta1'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'
compile project(path: ':endpoint', configuration: 'android-endpoints')
compile files('src/main/res/libs/KeyValueAPI.jar')
}
Ниже от конечной точки модуля:
buildscript {
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
classpath 'com.google.appengine:gradle-appengine-plugin:1.9.17'
}
}
repositories {
mavenCentral();
}
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'appengine'
sourceCompatibility = 1.7
targetCompatibility = 1.7
dependencies {
appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.8'
compile 'com.google.appengine:appengine-endpoints:1.9.8'
compile 'com.google.appengine:appengine-endpoints-deps:1.9.8'
compile 'javax.servlet:servlet-api:2.5'
compile 'com.googlecode.objectify:objectify:4.0b3'
compile 'com.ganyo:gcm-server:1.0.2'
// compile 'com.github.fengdai:alertdialogpro-theme-material:0.1.0'
}
appengine {
downloadSdk = true
appcfg {
oauth2 = true
}
endpoints {
getClientLibsOnBuild = true
getDiscoveryDocsOnBuild = true
}
}
15 ответов
Наконец, я решил эту проблему, изменив compile 'com.google.guava:guava:18.0 ' на compile 'com.google.guava:guava-jdk5:17.0'
Кажется, у вас есть JAR-файл или библиотека, появляющаяся несколько раз.
Итак, удалите файл.jar из папки lib, затем:
Build
> Rebuild
У меня была та же самая проблема проблемы, которая показана, я решаю ее, добавляя
defaultConfig {
// Enabling multidex support.
multiDexEnabled true
}
У меня была эта проблема, потому что я превысил предел dex в 65К, наложенный Android, я использовал так много библиотек
Я добавляю это так, чтобы кто-то в подобной ситуации мог найти это полезным.
Так что даже после multiDexEnabled = true
Я получаю ту же ошибку. У меня не было дубликатов библиотек. Ни одно из вышеуказанных решений не сработало. Прочитав журнал ошибок, я нашел OutOfMemError
вопрос, чтобы быть основной причиной и мысль об изменении heap size
как-то. Следовательно, это -
dexOptions {
preDexLibraries = false
javaMaxHeapSize "4g"
}
Где "4g" означает HeapSize
4 ГБ. И это сработало! Я надеюсь, что это тоже для вас.
Для меня у меня было несколько версий одной и той же библиотеки, включенной в /app/libs
, Я использовал Parse и у меня были оба ParseFacebookUtilsV3-1.9.0.jar
а также ParseFacebookUtilsV4-1.9.0.jar
,
Удаление V3
баночка решает проблему.
Три условия могут вызвать эту проблему.
- отличаются модуль имеют разные банки
- в библиотеках содержали jar ,, но в src alse добавьте соответствующий источник
повторение gradle содержит , например:
compile fileTree (include: ['*.jar'], dir: 'libs')
скомпилировать файлы ('libs/xxx.jar')
если вы можете читать по-китайски, прочитайте здесь Ошибка: не удалось выполнить задачу ':app:dexDebug'.> com.android.ide.common.process.ProcessException: o
Я столкнулся с точно таким же сообщением об ошибке. Я не совсем уверен, что мое решение решит и вашу проблему.
В Структуре проекта (приложение) я изменил версию Compile SDK с API 22 на API 21 и изменил версию Build Tools с 22.0.0 на 21.1.2.
Когда я загружал последнюю версию API 22 Adroid 5.1, каждый проект, который я создаю, использует этот API и создает мне проблему. Возможно, команда Android ищет исправление для этого.
У меня есть эта проблема после включения тех же классов дважды
Недавно я перенес один из наших корпоративных проектов из Eclipse в Android Studio.
Мы также получили следующую ошибку во время миграции:
Ошибка: не удалось выполнить задачу ':appName:transformClassesWithDexForDebug'. com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: обработать "команду" /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' завершено с ненулевым значением выхода 2
Чтобы решить эту проблему, нам пришлось сделать несколько вещей:
- Удалить / обновить дубликаты jar / файлов из библиотек
compile 'com.android.support:support-v4:23' compile 'com.google.android.gms:play-services:9.0.0'
в compile 'com.google.android.gms:play-services:9.0.0'
- Установите для multiDexEnabled значение True
defaultConfig {multiDexEnabled true}
- Увеличьте размер кучи:
dexOptions {incremental true javaMaxHeapSize "4g"}
Это также может быть в случае, когда у вас слишком много ссылок на объекты. Посмотрите на результаты сборки, особенно в задаче:dex:multiDebug:
проблема с записью выходных данных: слишком много ссылок на методы: 67114; макс 65536.
Я решил ту же проблему, удалив:
compile fileTree(include: ['*.jar'], dir: 'libs')
и добавив для каждого файла JAR:
compile files('libs/yourjarfile.jar')
Попробуйте вставить эту строку кода в основной скрипт вашего проекта:
configurations { all*.exclude group: 'com.android.support', module: 'support-v4' }
У меня есть две библиотеки, связанные с моим проектом, и они используют 'com.android.support:support-v4:22.0.0'.
Надеюсь, это поможет кому-то.
Попробуйте почистить и перестроить проект. У меня был абсолютно такой же вопрос, это решило его.
У меня та же проблема, и она решена путем замены '+' на точное число, например, "compile "com.android.support:appcompat-v7:21.0.+" to compile "com.android.support:appcompat-v7:21.0 +0,0".
Это работает для меня.:)
Я изменился:
compile 'com.google.android.gms:play-services:9.0.0'
compile 'com.google.android.gms:play-services-auth:9.0.0'
к:
compile 'com.google.android.gms:play-services-maps:9.0.0'
compile 'com.google.android.gms:play-services-auth:9.0.0'
Я столкнулся с той же проблемой при преобразовании проекта eclipse в Android-студию. В моем случае у меня был проект lirary jar-файл в проекте eclipse, и я добавил то же самое в gradle, вызвавшем ошибку. Я решил ее, удалив jar из libs.