android support v4包和 androidx 冲突解决方式

最近导入了百度导航的sdk 发现与当前工程 冲突。编译完全过不了。查了下。大概就是android support v4包和 androidx 冲突了。

如果你不嫌麻烦。就把整个工程改造一下。全部使用androidx 的。如果嫌麻烦。可以通过下面的方式做兼容使用:

1.首先 先让你的工程 兼容 support v4包和 androidx

在你工程 中的 “gradle.properties” 文件中(如果没有新建一下。在工程最外层)加入这个代码:
android.enableJetifier=true
android.useAndroidX=true
在这里插入图片描述

2.build工程。查看下报错日志,哪些包冲突了:(如果你安卓studio 版本够高。可以直接查看冲突的包。 我的版本比较低,所以直接看了日志)
1.查看后。可以大概知道哪些包冲突了然后 在build 文件中。通过 “exclude module:‘xxxxx’ ” (记得要带括号。不然会报错)的方式排除 冲突的包例如(下面仅是举个例子,具体排除的包。要根据你自己冲突的包进行排除):

implementation files('libs/slidingMenulibrary.jar')
implementation ('androidx.core:core-ktx:1.2.0'){
    exclude module: 'support-v4'
    exclude module: 'support-media-compat'
    exclude module: 'support-compat'
    exclude module: 'core'
}

大概意思是:编译的时候,导入androidx.core:core-ktx:1.2.0’ 这个包、但是要排除 下面的四个包。
编译一下。如果能通过就最好了。。

像我这样。肯定还是不行的。因为 我的 core 包被我排除了。但是实际上。我又要使用这个core的包。
这样肯定是不行的。
那我们该怎么办呢?只能用笨办法手动引入了

找到你的gradle 的配置文件夹: C:\Users\lin.gradle\caches (我的是在c盘的这个位置):
在这里插入图片描述

然后搜索框搜索:搜索core, 找到core 的文件。(注意别找错了是arr 文件。不是jar).找到之后。复制一份出来。(是复制出来 —是复制出来,—是复制出来,千万别直接改这个文件)
在这里插入图片描述
复制一份到桌面后。用压缩包的方式打开。找到里面的class.jar文件
在这里插入图片描述
然后再复制一份出来。然后再通过压缩包方式打开:你会蛋疼的发现你的这个文件里面有android 和 androidx 的文件夹。你没看错。冲突就是它造成的。
在这里插入图片描述

把android的文件夹删掉。然后 把class.jar文件。放回 之前的core.arr 文件里。并且把导入你的工程中libs文件夹下。然后导包就好了。
在这里插入图片描述
反正我通过这样 整了几轮之后。。。工程就能正常运行了

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐