迁移AndroidX

迁移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 collectDependencies() {
  ArrayList result = new ArrayList(2);
  result.add(new androidx.databinding.library.baseAdapters.DataBinderMapperImpl());
  result.add(new com.bl.sdk.DataBinderMapperImpl());
  return result;
}

测试的时候都要引用本地 ,用到的module全都引用,要么上边的错一直在,并且可能xml里会有遗漏

用组件化的项目迁移AndroidX挺麻烦的

你可能感兴趣的:(迁移AndroidX)