话说android-support-v4.jar的版本冲突产生的问题

Android开发的环境:
Eclipse+ADT
SDK Tools版本:23.0.2
SDK Platform-tools版本:20
SDK Build-tools版本:20
SDK Platform 版本:20
Android Support Library版本22.2
AVD Target Name:Android 4.4.2(19)Intel Atom(x86)
——————————————————————————————
遇到的问题:
LogCat报:Multiple dex files define Landroid/support/annotation/AnimRes

上网查了一下,有人说是android-support-v4.jar的版本太高的问题。我搜了一下我机器上的android-support-v4.jar,结果发现有4个不同的版本。可能是前期下载安装试验各个版本导致的。于是接下来仔细分析了一下android-support-v4.jar的版本
这里写图片描述
先说直观的感受,4个版本的jar包大小不同,分别是543KB、644KB、740KB、1.12MB。用rar打开它,在 META-INF\MANIFEST.MF 文件里,内容是这样的

Manifest-Version: 1.0
Created-By: 1.6.0_26 (Sun Microsystems Inc.)

或者

Manifest-Version: 1.0
Created-By: 1.7.0_79 (Oracle Corporation)

4个文件的Manifest-Version都是1.0,但Created-By不相同,我们姑且把它当是版本,梳理了一下,结果如下:
这里写图片描述
版本号放在文件名后,看的清楚一点,然后我们再看各个版本android-support-v4.jar的内容,26和39的android\support目录下只有一个v4目录
这里写图片描述
而45和79版本的android\support目录下有两个目录,分别是v4和annotation
这里写图片描述
所以事情就很明显了,高版本的android-support-v4.jar包,里面包含了annotation。和外面其它jar包里的annotation冲突,这事儿和android-support-v7没关系。我的解决办法也很简单,就是把所有v4包统一到39版本,覆盖掉45、79版,Project Clean一下,问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值