以这个错误
Error:Execution failed for task ':app:dexDebug'. com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-7-oracle/bin/java'' finished with non-zero exit value 2
和
Error: Execution failed for task ': app: packageAllDebugClassesForMultiDex'. > Java.util.zip.ZipException: duplicate entry: bolts / AggregateException.class
这两个错误为例做讲解
首先出现
Error:Execution failed for task ':app:dexDebug'. com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-7-oracle/bin/java'' finished with non-zero exit value 2
这个问题就是因为引入jar包的冲突,这时我们可以在build.gradle中添加如下代码,下方单独的是添加的代码
[java] view plain copy
defaultConfig {
applicationId ""
minSdkVersion 14
targetSdkVersion 21
versionCode 19
versionName "1.2.7"
// dex突破65535的限制
multiDexEnabled true
}
[java] view plain copy
multiDexEnabled true
并引入如下包
[java] view plain copy
dependencies {
// 编译libs目录下的所有jar包
compile fileTree(dir: 'libs', include: ['*.jar'])
//使用multidex support library让Android5.0之前的版本也能在一个apk里面包含多个.dex文件,防止一个.dex超过65536个方法数
compile 'com.facebook.fresco:fresc'
compile 'com.android.support:multidex:1.0.1'
}
[java] view plain copy
compile 'com.android.support:multidex:1.0.1'
这时候我们在run app,
发现又会出现这个错误
Error: Execution failed for task ': app: packageAllDebugClassesForMultiDex'. > Java.util.zip.ZipException: duplicate entry: bolts / AggregateException.class
这时候不要着急,我们仔细看看,发现提示blots/AggregateException.class,这就说明是这里引入重复,那么我们如果在libs下没有发现从external library看看,
这时候从external library中发现了以下包
这个和引入的jar包中有冲突,所以我们要去掉这里,所以找到来源,发现是引入这个才引入的bolts
所以这时候重点来了,我们需要将
[java] view plain copy
compile'com.facebook.fresco:fresco:0.6.0+'
改成这样
[java] view plain copy
compile('com.facebook.fresco:fresco:0.6.0+') {
exclude group: 'com.parse.bolts',
module: 'bolts-android'
}
该完之后再次run app
恭喜您,运行成功