2015-08-01 2 views
2

Error:Execution failed for task ':app:dexDebug'. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2Ошибка: выполнение выполнено для задачи ': app: dexDebug'. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:

Я получаю исключение выше. Я думаю, проблема в моем 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' 

} 

ответ

0

Эта ошибка происходит из-за ограничения (DEX) файл байт-код Dalvik Executable. Из-за количества зависимостей в вашем проекте вы достигли предела метода 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** 
    } 
    ... 
} 

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

0

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

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

Этот код может импортировать все пакета в «LIBS» .Если ваши «LIBS» есть пакет, вам не нужно компилировать again.And при компиляции «V7», вы не можете скомпилировать 'v4'. Если у вас «libs» есть «v4», удалите его.