升级Lifecycle 2.6.0后找不到LiveDataReactiveStreams类问题
问题分析与解决方案
这不是你的操作失误,是Google在AndroidX Lifecycle 2.6.0及以上版本调整依赖结构导致的问题。
核心原因:从Lifecycle 2.6.0开始,官方把
LiveDataReactiveStreams这类ReactiveStreams相关的LiveData适配类,从lifecycle-livedata-ktx等核心LiveData依赖中拆分出来,单独放到了lifecycle-reactivestreams系列的artifact里。如果只导入常规的LiveData依赖,自然找不到这个类。针对高版本的正确配置:在Gradle依赖中补充导入ReactiveStreams适配库即可,示例配置如下:
dependencies { // 保留基础LiveData依赖 implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.6.+" // 新增ReactiveStreams适配依赖(KTX版,Java项目用不带-ktx的) implementation "androidx.lifecycle:lifecycle-reactivestreams-ktx:2.6.+" }
为什么降级到2.5.1有效:在2.5.x及更早的版本中,
LiveDataReactiveStreams是包含在lifecycle-livedata-ktx(或旧的lifecycle-extensions)中的,所以不需要额外导入就能正常使用。关于android.arch的方案:这是旧版支持库的路径,绝对不建议在AndroidX项目中混用,会引发大量兼容性问题,完全不可取。
内容的提问来源于stack exchange,提问作者Anna M
相关产品推荐
相关产品推荐

