AndroidStudio中包冲突问题(使用解析和Multidex重复条目)

以这个错误

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中添加如下代码,下方单独的是添加的代码

defaultConfig {
        applicationId ""
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 19
        versionName "1.2.7"
        // dex突破65535的限制
        multiDexEnabled true
    }
multiDexEnabled true

并引入如下包

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'
  
    
 }

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中发现了以下包

AndroidStudio中包冲突问题(使用解析和Multidex重复条目)_第1张图片

这个和引入的jar包中有冲突,所以我们要去掉这里,所以找到来源,发现是引入这个才引入的bolts


所以这时候重点来了,我们需要将

compile'com.facebook.fresco:fresco:0.6.0+'


改成这样

compile('com.facebook.fresco:fresco:0.6.0+') {
        exclude group: 'com.parse.bolts',
                module: 'bolts-android'
    }


该完之后再次run app

恭喜您,运行成功

你可能感兴趣的:(Android经验)