安卓依赖包版本冲突:has different version for the compile (1.0.10) and runtime (1.0.11) classpath.

问题描述

编译安卓项目时,报如下错误:

Android dependency 'com.xxx.lib:lib_xxx' has different version for the compile (1.0.10) and runtime (1.0.11) classpath. You should manually set the same version via DependencyResolution

分析

大的项目里通常有很多依赖包,而被依赖的包又依赖其他的包,就难免会出现包版本号不一致的问题.
查看项目依赖关系图方法:
./gradlew 模块名:dependencies > dep.log
如对于app模块,命令为:./gradlew app:dependencies > dep.log,大致效果图如下:

解决方案

在项目里统一最终的依赖包版本号,看报错是哪个包,就指定哪个包的最终版本号.(不过这样做,也有前提,那就是指定的这个版本号的包在各个用到的地方都是可以正常使用的.如果某个依赖包,在版本迭代过程中,删除了某些类或方法,而你的某个库用到了这些类或方法,那么当把版本号指定为新的版本时,该库就会出问题.那此时只能要求该库作出修改,改用新的版本.)
修改项目根目录下build.gradle文件,在allprojects下增加如下内容:

allprojects {
    configurations.all {
        resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
        resolutionStrategy {
            force "com.xxx.lib:lib_xxx:1.0.11"
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值