更新Jetpack相关依赖后使用Paging的列表功能出现AbstractMethodError崩溃
问题根因
该异常是版本不兼容导致的:Room 2.4.0-alpha05版本的room-paging组件基于Paging 3.1.0以上版本的API编译,presentNewList方法签名在Paging 3的迭代过程中发生过非兼容修改,如果你项目中直接依赖的Paging版本低于配套要求,就会出现运行时找不到方法的抽象方法错误。
可行解决方案
- 方案1:统一升级Paging版本
将项目中所有Paging相关依赖(paging-runtime-ktx、paging-common-ktx等)同步升级到3.1.0及以上稳定版,和Room 2.4.0-alpha05的依赖要求对齐即可解决冲突。 - 方案2:降级Room版本
如果不需要Room 2.4.0-alpha05的新特性,可以将room-paging、room-ktx回滚到2.4.0-alpha04及更低版本,该版本的Room Paging绑定适配更低版本的Paging 3 API,不会出现兼容性问题。 - 方案3:强制指定Paging版本(兜底)
如果你不想逐个修改依赖声明,可以在项目根目录的build.gradle中添加强制版本配置,全局锁定Paging的版本:allConfigurations { resolutionStrategy { force "androidx.paging:paging-common-ktx:3.1.0" force "androidx.paging:paging-runtime-ktx:3.1.0" } }
验证步骤
修改依赖后执行./gradlew app:dependencies命令检查Paging相关依赖的版本是否全部统一,确认没有版本冲突后重新编译运行即可。
内容的提问来源于stack exchange,提问作者Sergio B.
相关产品推荐
相关产品推荐

