IMKit 4.X 升级到 5.X
本文描述 IMKit SDK 从 4.X 到 5.X 版本的升级步骤。
变更说明
注意
IMKit SDK 5.x 版本正式开源,此开源版本基于 MVVM 架构重构完成,因此和 2.x、4.x 版本不兼容,无法平滑升级。
详细变更说明如下:
1. 依赖包更改
Google 2018 IO 大会推出了扩展库 AndroidX,AndroidX 是对 android.support.xxx 包的整理后产物,Google 官方早已明确声明不再维护 support 包。因此融云 IMKit SDK 5.X 及以后版本更改为通过 AndroidX 实现,不再支持 support 包!
注意
如果您应用依赖于 support 包,可参考 AndroidX 迁移文档 将依赖转换为 AndroidX 后,再集成 IMKit SDK 5.X版本。
2. 类路径调整
IMKit SDK 5.X 版本重构了 SDK 的架构,通过 MVVM 框架实现,导致很多类路径发生了更改,下表列出了 5.X 之前版本对外公开类的路径变更:
2.x 、4.x 版本路径 | 5.x 版本路径 |
---|---|
io.rong.imkit.fragment.ConversationListFragment | io.rong.imkit.conversationlist.ConversationListFragment |
io.rong.imkit.fragment.ConversationFragment | io.rong.imkit.conversation.ConversationFragment |
io.rong.imkit.RongExtension | 无法直接替换。请按照 IMKit 5.x 的文档说明重新集成插件。 |
io.rong.imkit.userInfoCache.RongUserInfoManager | io.rong.imkit.userinfo.RongUserInfoManager |
io.rong.imkit.mention.RongMentionManager | io.rong.imkit.feature.mention.RongMentionManager |
io.rong.imkit.manager.IUnReadMessageObserver | io.rong.imkit.manager.UnReadMessageManager.IUnReadMessageObserver |
io.rong.imkit.RongConfigurationManager | io.rong.imkit.utils.language.RongConfigurationManager |
关于路径调整的说明
- 参照上表,在 AndroidStudio 中 command+shift+R 全局搜索旧的类路径,替换为新路径。
io.rong.imkit.RongExtension
无法用替换的方式升级。请按照 IMKit 5.x 的文档说明重新集成插件。- 如果深度定制化了 IMKit SDK,部分类路径的调整可能不在上述列表中,升级以后 AndroidStudio 会有红色报错。删除报错类里红色未识别的导入路径,鼠标停留到报错的地方,根据 AndroidStudio 的提示导入新路径即可。如果有多个地方使用了该路径,可以参考第一步里的方法,全局搜索并替换。
3. 集成方式变更
页面跳转时由原先的隐式调用方式更改为显示调用, 因此集成步骤有所简化和更改。您需要先移除旧版本 AndroidManifest.xml 文件中关于 IMKit SDK 的配置,参考官网文档重新集成。