提示错误为:More than one file was found with OS independent ‘META-INF/androidx.vectordrawable_vectordrawable.version’
我做的工作,本身项目为androidx配置的项目,这个时候我添加了一个Activity和一个IntentService,就报告以上的错误,这个错误查阅各大网站没有得到解决,最后自己猜测是引包的原因,将自己的处理步骤整理如下:其中有前几个步骤可能不太影响,这里就不去测试了,但是也整理出来。
步骤1:(关键因素)
去掉: // implementation ‘com.android.support:appcompat-v7:28.+’
更换为:implementation ‘androidx.appcompat:appcompat:1.0.0+’
检查库中是不是有support的库,全部更换为androidx,更换关系如下:
Old build artifact AndroidX build artifact
com.android.support:support-compat androidx.core:core:1.0.0+
com.android.support:appcompat-v7 androidx.appcompat:appcompat:1.0.0+
com.android.support:design com.google.android.material:material:1.0.0+
com.android.support:multidex androidx.multidex:multidex:2.0.0+
com.android.support:recyclerview-v7 androidx.legacy:legacy-support-v4:1.0.0+
com.android.support:viewpager androidx.viewpager:viewpager:1.0.0+
com.android.support:support-fragment androidx.fragment:fragment:1.0.0+
support迁移到androidx的官方说明:https://developer.android.google.cn/jetpack/androidx/migrate,其实迁移很简单,声明两个配置android.useAndroidX=true,android.enableJetifier=true,然后引入androidx对应的库就可以了。
步骤2,(关键因素)
androdx的1.0版本支持的是28.0.0以上的版本,一般我们用29.0.0
将版本信息的配置文件更改为如下:
buildToolsVersion = “29.0.0”
minSdkVersion = 21
compileSdkVersion = 29
targetSdkVersion = 29
步骤3,(可能不是关键影响因素)
忽略有提示错误的库,提示什么,我们就在配置文件中添加忽略,添加方法如下
步骤4,(核心关键因素)检查我新建的activity和IntentService发现在头文件中引入的库包含了Support库,删掉import的Support库,重新import引入androidx的库,
检查layout中的xml文件,发现为android.support.constraint.ConstraintLayout,更改为androidx.constraintlayout.widget.ConstraintLayout
改完后,重新运行,可以正常运行了