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

[java]  view plain  copy
  1. defaultConfig {  
  2.         applicationId ""  
  3.         minSdkVersion 14  
  4.         targetSdkVersion 21  
  5.         versionCode 19  
  6.         versionName "1.2.7"  
  7.         // dex突破65535的限制  
  8.         multiDexEnabled true  
  9.     }  
[java]  view plain  copy
  1. multiDexEnabled true  

并引入如下包

[java]  view plain  copy
  1. dependencies {  
  2.     // 编译libs目录下的所有jar包  
  3.     compile fileTree(dir: 'libs', include: ['*.jar'])  
  4.     //使用multidex support library让Android5.0之前的版本也能在一个apk里面包含多个.dex文件,防止一个.dex超过65536个方法数  
  5.     compile 'com.facebook.fresco:fresc'  
  6.     compile 'com.android.support:multidex:1.0.1'  
  7.     
  8.       
  9.  }  

[java]  view plain  copy
  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中发现了以下包


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


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

[java]  view plain  copy
  1. compile'com.facebook.fresco:fresco:0.6.0+'  


改成这样

[java]  view plain  copy
  1. compile('com.facebook.fresco:fresco:0.6.0+') {  
  2.         exclude group: 'com.parse.bolts',  
  3.                 module: 'bolts-android'  
  4.     }  

如果打包的时候报:java.lang.OutOfMemoryError: Java heap space: failed reallocation of scalar replaced objects

加入以下代码就可以解决:

dexOptions {
    javaMaxHeapSize "4g"
}

该完之后再次run app

恭喜您,运行成功


转载地址:http://blog.csdn.net/u011930471/article/details/50389151

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值