Ошибка: не удалось выполнить задачу ':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 баночка решает проблему.

Три условия могут вызвать эту проблему.

  1. отличаются модуль имеют разные банки
  2. в библиотеках содержали jar ,, но в src alse добавьте соответствующий источник
  3. повторение 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

Чтобы решить эту проблему, нам пришлось сделать несколько вещей:

  1. Удалить / обновить дубликаты 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'

  1. Установите для multiDexEnabled значение True

defaultConfig {multiDexEnabled true}

  1. Увеличьте размер кучи:

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.

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