使用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直接导入即可。
 
 

发布了16 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/adfghjkl/article/details/46858605