迁移 Androidx 成功后再次出现重复 support 库 处理方案

 先贴个错误信息

Program type already present: android.support.v4.media.MediaBrowserCompat$It

 

Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug - 

然后给你个链接让你参考官方处理办法 https://developer.android.com/studio/build/dependencies#duplicate_classes

意思是说有两个同样的类,重复了, 让你看依赖,删除一个就行 ,但是三方库的依赖我一个一个删不现实呀

首先检查下 gradle.properties 文件中是否有如下内容,这个是要同步到版本控制的,否则下载下来没有这个也会报错,这个是让三方库也使用Androidx,否则还是会使用之前的support库

android.enableJetifier=true
android.useAndroidX=true

前几天谷歌百度迁移 Androidx ,遇到的问题一般搜索一下或者在 stackoverflow 里都有解决方案,不用耗费多长时间就能顺利解决。这次出现这个错误信息有点小困难,不过也顺利解决啦。

 解决思路先大致说下:

  之前迁移成功时三方库的系统自动处理的, 不会出现在 External Libraries中, 这次不知何故出现了,思考着想之前一样迁移下就行,试一下果然可以,想法还是要有的,万一成功了呢?

 有了思路处理起来就简单了。随便改了一个 xml 文件,我将 androidx 的 viewpager 换成了 support 的 viewpager,然后Refactor->

Migrate to Androidx, 检索出来这个 xml,然后 do refactor, 之后AS 让你同步,或者 Sync Project with Gradle Files 也可以,之后

run 就行。

以上方法应该就可以了,如果还有问题,删掉所有缓存, build 文件等, 再次尝试,当前,前提是符合迁移 Androidx 的基本条件(gradle 和 sdk 要求要满足)

你可能感兴趣的:(遇到的问题,原创)