美文网首页
迁移AndroidX

迁移AndroidX

作者: 柴柴777 | 来源:发表于2019-07-24 15:42 被阅读0次

    迁移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挺麻烦的

    相关文章

      网友评论

          本文标题:迁移AndroidX

          本文链接:https://www.haomeiwen.com/subject/iwwxrctx.html