You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用RxJava调用API时遇Disposable类型不匹配错误求助

RxJava类型不匹配问题:Disposable版本冲突解决方案

问题根源

你遇到的是RxJava版本不兼容导致的类型冲突:

  • 代码中compositeDisposable.add()需要的是RxJava 2的io.reactivex.disposables.Disposable
  • 但你的apiService.getMovieDetails()返回的是RxJava 3的io.reactivex.rxjava3.disposables.Disposable
    两者属于不同大版本的库,类型无法互相转换。

解决方案

方案1:统一升级到RxJava 3

如果想使用新版RxJava,需要确保项目所有Rx相关依赖都是3.x版本:

  1. 更新Gradle依赖(以Android为例):
implementation 'io.reactivex.rxjava3:rxjava:3.1.8'
implementation 'io.reactivex.rxjava3:rxandroid:3.0.2'
  1. 替换所有相关导入:
    • CompositeDisposable导入改为:import io.reactivex.rxjava3.disposables.CompositeDisposable
    • Schedulers导入改为:import io.reactivex.rxjava3.schedulers.Schedulers
  2. 重新编译项目,此时类型匹配问题会解决。

方案2:回退到RxJava 2(匹配教程版本)

如果教程使用的是RxJava 2,直接回退依赖即可:

  1. 更新Gradle依赖:
implementation 'io.reactivex.rxjava2:rxjava:2.2.21'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
  1. 导入正确的CompositeDisposable:import io.reactivex.disposables.CompositeDisposable
  2. 代码无需其他修改,就能和教程保持一致。

补充说明

你标注的两个Log.e()位置本身没有语法错误,只是因为外层的Disposable类型不匹配导致编译报错,解决版本冲突后这些错误会自动消失。

内容的提问来源于stack exchange,提问作者Reza Zeraati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 16:36:10