IMSDK转AndroidX

将 IMSDK 的包替换为 androidx 包
发布时间: 2020-02-21 15:55

回答:

IMSDK转AndroidX

前提概述:

本文档只针对==Android的IM ====SDK======
由于目前 IM 官方提供的 SDK 版本所引用的都为正常 support 包下的 class,所以当用户使用 androidx 环境编写项目的时候引用的 sdk 会出现包找不到的现象

androidx 概述:

Google 2018 IO 大会推出了扩展库 AndroidX,AndroidX 是对 android.support.xxx 包的整理后产物。由于之前的support包过于混乱,所以,google推出了 androidX 用于替换support包。其只是将原来的android.替换成androidx.,只有包名和Maven工件名受到影响,原来的类名、方法名和字段名不会更改。由于在后续版本中,会逐步放弃对 support 的升级和维护,所以,我们必须尽快迁移到 androidX

转换思路概述:

其实只是谷歌的类迁移了包名,本质是上 class 跟之前没有差异,所以我们把包名替换调就行

转换步骤(基于 AndroidStudio)

目前 AndroidStudio 已经提供了只能替换包名的方式
1.新建一个 demo 将需要转换的 sdk moudle 引入到此项目中
2.转换步骤

1)修改 gradle.properties android.useAndroidX=true android.enableJetifier=true 其中:

  • android.useAndroidX=true 表示当前项目启用 androidx

  • android.enableJetifier=true 表示将依赖包也迁移到androidx。如果取值为false,表示不迁移依赖包到androidx,但在使用依赖包中的内容时可能会出现问题。

2)将AS更新至 AS 3.2 及以上 将 Gradle 插件版本改为 4.6 及以上 将 compileSdkVersion、targetSdkVersion,28以上,buildToolsVersion 版本改为 28.0.2及以上

3)在AndroidStudio 3.2 或更高版本中执行如下操作: Refactor > Migrate to AndroidX 如果你的项目 compileSdkVersion 低于28,点击Migrate to AndroidX...会提示: You need to have at least have compileSdk 28 set in your module build.gradle to refactor to androidx

3.将项目转化后,sdk 内的包也会被替换,将 sdk 导出就是正常的 androidx 的sdk了