关于Support包的版本问题

亡梦爱人 提交于 2019-11-28 02:38:22

今天跑了下某项目,发现报错:

Error:Execution failed for task ':app:transformClassesWithJarMergingForDevDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/v4/content/SharedPreferencesCompat$1.class

大家看了就知道,这基本上就是support包版本兼容问题,可是之前打开过没有问题啊,怎么今天就跑不起来了?

怀疑是Dependency中存在标示为获取最新版本的库(依赖包没有标记具体的版本号,而是使用了加号“+”),因为发布了新的包,和项目中其他的包发生了版本冲突所导致的。

所以直接就来看项目中的build.gradle文件,发现以下代码:

compileSdkVersion 23
...
dependencies { compile fileTree(dir:
'libs', include: ['*.jar']) compile 'com.android.support:design:23.1.0' compile 'com.android.support:support-v4:23.1.0' compile 'com.android.support:appcompat-v7:23.1.0' compile 'com.android.support:recyclerview-v7:+' }

我们知道,support包的版本都需要和compileSdkVersion是一致的(大版本号上一致)。

而这里recyclerview的support包制定了最新版本进行编译(题主不久前更新到24),所以recyclerview使用了24的包进行编译,所以导致了上面的错误。

 

找到了问题,那么解决的方法也就有了,直接把版本号改成和其他support包一样:

compile 'com.android.support:recyclerview-v7:+'

=>

compile 'com.android.support:recyclerview-v7:23.1.0'

编译,成功。

 

转载于:https://www.cnblogs.com/BlueVienna/p/6025666.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!