概要
你有没有发觉创建一个Android项目时,会自动关联一个库项目android-support-v7-appcompat.jar或appcompat_v7.jar,还会在libs文件夹中自动导入android-support-v4.jar,现在问题出现了:
- [2016-02-01 09:24:41 - PrivateLibsDemo2] but not all the versions are identical (check is based on SHA-1 only at this time).
- [2016-02-01 09:24:41 - PrivateLibsDemo2] All versions of the libraries must be the same at this time.
- [2016-02-01 09:24:41 - PrivateLibsDemo2] Versions found are:
- [2016-02-01 09:24:41 - PrivateLibsDemo2] Path: E:\sinolvc\workspace\appcompat_v7\libs\android-support-v4.jar
- [2016-02-01 09:24:41 - PrivateLibsDemo2] Length: 1294803
- [2016-02-01 09:24:41 - PrivateLibsDemo2] SHA-1: 0725d32f682f72bdfb3f61a2cd04dc3763710b6c
- [2016-02-01 09:24:41 - PrivateLibsDemo2] Path: E:\sinolvc\workspace\PrivateLibsDemo2\libs\android-support-v4.jar
- [2016-02-01 09:24:41 - PrivateLibsDemo2] Length: 1364299
- [2016-02-01 09:24:41 - PrivateLibsDemo2] SHA-1: b6c138ba72ce38beda559df33d369856854fd6f5
- [2016-02-01 09:24:41 - PrivateLibsDemo2] Jar mismatch! Fix your dependencies
这个问题的解决办法其实很简单,只需要直接删除libs中的android-support-v4.jar包即可,但是我不明白的是,为什么每次创建项目的时候,都会自动关联appcompat_v7或android-support-v7-appcompat和导入android-support-v4.jar包?如果取消自动导入的android-support-v4.jar包,那么是不是就不用每次都手动删除了?而且导入的android-support-v4.jar包和appcomat_v7类库中的jar包不是重复了吗?
新的发现
我在另外的磁盘新创建额外的workspace工作间,然后创建Android项目,发现新项目的libs中也导入了android-support-v4.jar包,同理也引用了appcompat_v7类库中的jar包,但是这个时候并没有提示上述jar包版本不一致的,同时发现导入的jar包没有“Add Build Path”,也就是说libs中的jar包未使用,所以在上述步骤中直接删除可以解决版本不一致的问题。同时还发现新创建项目时,导入的jar包位于SDK底下,路径:sdk\extras\android\support\v4\android-support-v4.jar,如果SDK底下的jar包与appcompat_v7类库中的jar包不同,就会报“Found 2 version of android-support-v4.jar in the dependency list”,既然上面报错,而且提示的也就是版本不同的问题,解决的办法是对比了workspace工作间libs中的jar包,然后使用SDK底下的jar包替换另外的,最后新建项目时就不会再出现上述错误提示了。对比之后验证猜想是正确的,他们不是同一个jar包,这也是为什么新建Android项目后,会提示版本不一致的原因,既然这样。解决的办法是将SDK底下的jar替换appcompat_v7类库libs文件夹中的android-support-v4,问题解决。
当前文章价值4.4元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)