使用Android studio中遇到的各种问题记录

1.问题: Error:Execution failed for task ':javaapkcomWayHoo:packageAllDebugClassesForMultiDex'.

> java.util.zip.ZipException: duplicate entry: android/support/v4/util/TimeUtils.class


本文提属于v4引用的包冲突。

在我们使用类库的时候,由于Android studio对于包的检测比eclipse检测更加严格。

本人的问题:①在项目中引入了v7包,而v7包会自动引入一个v4包。②在某个项目引用的类库中使用了v13.jar文件,在v13.jar文件中也引入了一个v4。

如下图所示



解决方案:为了解决该问题,我们需要去掉一个v4包。

①、本人使用的方案是:由于引用的类库所包含的v4包必须使用,因此将项目中的v7中v4包进行了屏蔽。在v7包后面加入一句话

exclude module: 'support-v4',不引用v7的v4包,这样解决比较简单。如图所示
dependencies {
    compile project(':menuDrawerlib')
    compile project(':pullToRefreshlib')
    compile project(':swipeBacklib')
    compile project(':viewPagerIndicatorlib')
    compile project(':weatherlib')
    compile 'com.android.support:appcompat-v7:22.2.0' exclude module: 'support-v4'
    compile files('src/main/libs/locSDK_4.2.jar')
}
方案的缺点:如果多个jar包均引用了v4,该方法只能将所有的类库中包含v4中的jar的v4包屏蔽,将某一个类库作为其他类库的库文件。比较复杂,也比较乱。
②、别人指导的方案:(本人未测试,不知道如何实现) 从开源包里将v4裁剪出来裁剪出来作为一个单独的类库,其他的库文件和项目均将各自的v4包屏蔽,引用裁剪出来的v4做为一个类库。该方案对于以后的项目中也存在的这种问题,可以将裁剪出来的v4直接导入即可。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值