在Android开发中,如果我们引用了某些框架,而在我们自己的项目和其他框架中,分别引用了不同版本的support库,就会报如下警告:
提示的库为:com.android.support:appcompat-v7:27.1.1
提示信息:All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 27.1.1, 27.1.0. Examples include...
大致意思为不同版本的support库可能引起APP崩溃,发现27.1.1
和27.1.0
两个版本。
既然知道问题了,解决也很简单。
1.查看依赖关系
在Android Studio
的Terminal
中输入命令:
>gradlew app:dependencies
也可以输入如下命令来打印结果到文本中:
>gradlew app:dependencies >log.txt
如果提示'gradle' 不是内部或外部命令,也不是可运行的程序或批处理文件。
,则需要将gradle
所在目录的bin
文件夹添加到Path
系统环境变量中。一般在C:\Users\用户名\.gradle\wrapper\dists\
下,找到最新版本或者你当前用的版本,我的目录为:
C:\Users\Administrator\.gradle\wrapper\dists\gradle-4.10-all\54ye4nru8k2rpf7xwj15he4fo\gradle-4.10\bin
在系统环境变量中,新建GRADLE_HOME
变量,值为上述地址,然后在Path
中添加%GRADLE_HOME%
即可。
回到Android Studio
的Terminal
中重试上述命令,如果还不行,需要重启Android Studio
。
2.查找库引用
经过第一步输出日志到log文件后,我们可以打开log文件,搜索27.1.0
,找到对应的库,我的是picasso
:
+--- com.squareup.picasso:picasso:2.71828
| +--- com.squareup.okhttp3:okhttp:3.10.0 (*)
| +--- com.android.support:support-annotations:27.1.0 -> 27.1.1
| \--- com.android.support:exifinterface:27.1.0
| \--- com.android.support:support-annotations:27.1.0 -> 27.1.1
3.排除对应版本的包
最后,我们只需要在picasso
中排除掉低版本的库即可,因为我的报错是com.android.support:appcompat-v7
,所以我要排除的是appcompat-v7
包:
implementation("com.squareup.picasso:picasso:2.71828") {
exclude group: 'com.android.support'
exclude module: 'appcompat-v7'
}
网友评论