Advertisement

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

阅读量:

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

最近集成百度地图API后发现与现有开发框架存在冲突。编译过程中出现无法通过的情况。进一步调查后发现具体问题源于Android支持v4包和AXDK之间的冲突。

如果你愿意花费时间。
对整个工程进行改造。
所有项目均采用androidx框架。
如果你不想过于繁琐。
采用以下方法实现兼容性:

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

在你的工程中,在 gradle.properties 文件中(如果没有新建的话,在工程最外层)添加这个代码块: enable Jetifier 启用 Android 启用 Android X

在这里插入图片描述

在第2步工程中进行操作:首先检查错误日志内容(若您使用的安卓 Studio 版本较高,则可直接查看具体的冲突软件包;由于我的安卓 Studio 版本较低,则直接参考错误日志)。完成上述操作后,在构建文件中通过 "排除模块:"(需特别注意应带有括号)的方式去除已知出现过的软件包干扰项。(以下仅为举例说明,请根据实际遇到的问题进行调整):
例如:
排除模块:"com.example pack1"
请根据实际情况修改具体的模块名称。

复制代码
    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处。

在这里插入图片描述

接着,在输入栏输入"core"以便定位到相应的核心文件。(请注意不要找错类型为".arr"的文件而非".jar"。确定后点击获取按钮后在弹出的对话框中选择复制选项。)

在这里插入图片描述

复制一份到桌面后。用压缩包的方式打开。找到里面的class.jar文件

在这里插入图片描述

然后再复制一份到另一处
然后尝试通过压缩包的方式打开
你会感到沮丧地发现文件中存在安卓 和安卓 项目的文件夹
没有搞错的情况出现
问题源于此

在这里插入图片描述

删除原本Android项目的存储目录。
随后将类jar文件复制到目标工程的lib子目录中。
并将其导入目标工程的lib子目录中。
这样就完成了整个操作流程。

在这里插入图片描述

反正我通过这样 整了几轮之后。。。工程就能正常运行了

全部评论 (0)

还没有任何评论哟~