迁移AndroidX
https://developer.android.google.cn/jetpack/androidx/migrate
Android Studio 3.2 及更高版本,可以通过从菜单栏中依次选择 Refactor > Migrate to AndroidX,快速迁移现有项目以使用 AndroidX。
如果项目里有任何尚未迁移至 AndroidX 命名空间的 Maven 依赖项,那么当您在 gradle.properties
文件中将以下两个标记设置为 true
时,Android Studio 编译系统也会为您迁移这些依赖项:
android.useAndroidX=true
android.enableJetifier=true
要迁移未使用任何第三方库但带有需要转换的依赖项的现有项目,可以将 android.useAndroidX
标记设置为 true
,并将 android.enableJetifier
标记设置为 false
。
使用android.enableJetifier=true可以将项目中使用的第三方库迁移到 Androidx,但是,迁移后使用可能还是会报错,这时你需要 Flie -> Invalidate Caches /Restart 一下就可以了
以上这些是基本流程
工具迁移 有些包名引用还是错的,annotions,fragment,等,需要手动改,批量替换
xml里的需要自己去找去改,有些可以编译通过需要自己去找
gradle里的移除这个不需要了
exclude(group: 'com.android.support')
问题集中在databinding引用,
生成的DataBinderMapperImpl,在引入外部包里有报错,并没有成功替换androidx下DataBinderMapperImpl
result.add(new androidx.databinding.library.baseAdapters.DataBinderMapperImpl());
@Override
public List<DataBinderMapper> collectDependencies() {
ArrayList<DataBinderMapper> result = new ArrayList<DataBinderMapper>(2);
result.add(new androidx.databinding.library.baseAdapters.DataBinderMapperImpl());
result.add(new com.bl.sdk.DataBinderMapperImpl());
return result;
}
测试的时候都要引用本地 ,用到的module全都引用,要么上边的错一直在,并且可能xml里会有遗漏
用组件化的项目迁移AndroidX挺麻烦的