Ошибка: не удалось выполнить задачу ':app:dexDebug'. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:

Ошибка: не удалось выполнить задачу ':app:dexDebug'. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: обрабатывать "команду" /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/bin/java'' закончено с ненулевым значением выхода 2

Я получаю вышеуказанное исключение. Я думаю, что проблема в моем build.gradle. Мои зависимости build.gradle:

dependencies {

    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'
    compile 'com.google.android.gms:play-services:7.3.0'
    compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
    compile 'com.getbase:floatingactionbutton:1.9.0'
    compile 'com.parse.bolts:bolts-android:1.+'
    compile 'com.android.support:support-v4:22.2.0'
    compile 'com.melnykov:floatingactionbutton:1.3.0'
    compile 'de.hdodenhof:circleimageview:1.3.0'
    compile 'me.villani.lorenzo.android:android-cropimage:1.1.0'
    compile 'com.oguzdev:CircularFloatingActionMenu:1.0.2'

}

2 ответа

Вы можете проверить папку "libs".

compile fileTree(dir: 'libs', include: ['*.jar'])

Этот код может импортировать весь пакет в "libs". Если у ваших "libs" есть пакет, вам не нужно снова его компилировать. А если вы компилируете v7, вы не можете скомпилировать v4. Если вы libs" have "v4", удалите его.

Эта ошибка происходит из-за ограничения файла байт-кода Dalvik Executable (dex). Из-за количества зависимостей в вашем проекте вы достигли предела в 65K. Это означает, что исполняемый файл Dalvik может ссылаться только на 65 536 методов, и вы превысили этот предел. Эти методы включают методы в библиотеках Android, любые методы в ваших зависимостях и ваши собственные методы, в которых вы написали.

Чтобы обойти это ограничение, вы можете включить multiDex в файле build.gradle, который создаст более одного исполняемого файла Dalvik.

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.0"

    defaultConfig {
        ...
        minSdkVersion 14
        targetSdkVersion 21
        ...

        // Enabling multidex support.
        **multiDexEnabled true**
    }
    ...
} 

Перед включением мультидекса убедитесь, что все зависимости необходимы. Вы можете использовать ProGuard http://developer.android.com/tools/help/proguard.html для автоматического удаления неиспользуемых зависимостей из вашей сборки.

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