【已解决】Android Studio使用Databinding引起的support-v4包库冲突问题 ZipException

本文介绍了在使用Databinding时出现的库冲突问题及解决办法。主要原因是Databinding自动引入了较低版本的支持库,与项目中已有的较高版本支持库发生冲突,导致编译错误。文章提供了两种解决方案:一种是移除原有支持库;另一种是手动添加高版本支持库依赖,并移除原有的支持库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用了Databinding之后,AndroidStudio会自动将当前target api对应版本的support-v4包依赖添加进来(在本例中是21.0.3的版本),而原项目中使用的support-v4包是在lib下的一个jar包(在本例中是25.0.0版本),是高于当前api版本的。结果在项目编译时,两个v4包被一起编译进来了,就造成了库冲突的问题,具体表现为编译时报ZipException的错误


解决方法:

第一种方法(不推荐):

①直接将原lib下的support-v4包移除。

【注意】这种方法就是让我们去使用Databinding添加进来的低版本support-v4包,而这样可能会导致原项目中的某些业务代码出错,因为其依赖了高版本的某些特性。


第二种方法(推荐):

①在gradle的dependencies中手动添加更高版本的support-v4包依赖,如:

compile 'com.android.support:support-v4:25.0.0'

②将原lib下的support-v4包移除,如果不想删文件可以这么写:

compile fileTree(include:['*.jar'], exclude:['android-support-v4.jar'], dir:'src/main/lib')

【原理】当我们手动添加更高版本的support-v4包依赖后,Databinding就不会再重复添加support-v4包依赖进来了。第②步是为了防止库重复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值