minimeta
  • 190822 补充:升级 gradle 到 3.4.2 之后,禁止项目默认启用 androidx
  • 190817 补充:补充 Glide 兼容 androidx 注解的内容
  • 190726 补充:细节补充
  • 190325 补充:莫名问题的解决
  • 181106 补充:修改未迁移成功的三方库

1、AndroidX 简介

点击查看 Android 文档中对 AndroidX 的简介

按照官方文档说明 AndroidX 是对 android.support.xxx 包的整理后产物。由于之前的 support 包过于混乱,所以,Google 推出了AndroidX。

由于在后续版本中,会逐步放弃对 support 的升级和维护,所以,我们必须迁移到 AndroidX .对此,官方描述如下:

Existing packages, such as the Android Support Library, are being refactored into AndroidX.
Although Support Library versions 27 and lower are still available on Google Maven,
all new development will be included in only AndroidX versions 1.0.0 and higher.

2、迁移步骤

2.1 修改当前项目的 gradle.properties

android.useAndroidX=true
android.enableJetifier=true

其中:

  • android.useAndroidX=true 表示当前项目启用 AndroidX
  • android.enableJetifier=true 表示将依赖包也迁移到AndroidX 。如果取值为 false ,表示不迁移依赖包到AndroidX,但在使用依赖包中的内容时可能会出现问题,当然了,如果你的项目中没有使用任何三方依赖,那么,此项可以设置为 false

注意:是当前项目的 gradle.properties, 当我们切换 AS 视图到 Android 目录结构时,该文件会显示为 gradle.properties (Project Properties)。一定要注意与 gradle.properties (Global Properties) 区分

2.2 如何迁移

点击查看官方迁移指南

在 AndroidStudio 3.2 或更高版本(截图中 AndroidStudio 为 3.2 版本)中执行如下操作:

  • Refactor > Migrate to AndroidX


     
    image

在执行该操作时会提醒我们是否将当前项目打包备份。如果你提前已经做好了备份,可以忽略;如果没有备份,则先备份。

3 迁移后续

3.1 手动修改错误包名

由于 Migrate to AndroidX 执行之后,部分控件的包名/路径名转换的有问题,所以还需要我们手动调整(包括修改 xml 布局文件和 .java 或 .kt 文件)。

如:ViewPager, RecyclerView 等,这些内容在迁移完成之后,包名是 androidx.core.weight.xxxx,这是一个错误的包名,我们必须手动修改,否则,无法正常编译——点击绿色 Run(运行) 按钮时会详细报出哪里有错误。(迁移到 androidX 之后,各包名可参考 支持库类映射 进行修改

此处需要注意,在 AndroidStudio 的 build 选项卡中一次最多只会报 50条错误!! 所以,可能在你修完第一批之后,后面还有N个50。此处要保持一个平静的

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-07-24
  • 2021-12-20
  • 2021-09-24
  • 2021-09-23
  • 2022-12-23
  • 2021-06-28
  • 2021-07-24
猜你喜欢
  • 2021-11-11
  • 2021-08-08
  • 2022-12-23
  • 2021-11-14
  • 2022-12-23
  • 2022-12-23
  • 2021-08-27
相关资源
相似解决方案