zoukankan      html  css  js  c++  java
  • RxJava2出现:Unable to create call adapter for io.reactivex.Flowable

    前面一直使用的是Rxjava 1.x 版本,最近 Rxjava 2.x 版本发布了,并且支持了背压,便换成了 Rxjava 2.x 版本。更换之后出现了下面的错误。

      Caused by: java.lang.IllegalArgumentException: Unable to create call adapter for io.reactivex.Flowable<com.sky.vision.entity.daily.DailyEntity>
                          for method ApiService.getDaily
                          at retrofit2.ServiceMethod$Builder.methodError(ServiceMethod.java:720)
                          at retrofit2.ServiceMethod$Builder.createCallAdapter(ServiceMethod.java:234)
                          at retrofit2.ServiceMethod$Builder.build(ServiceMethod.java:160)
                          at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:166)
                          at retrofit2.Retrofit$1.invoke(Retrofit.java:145)
                          at java.lang.reflect.Proxy.invoke(Proxy.java:813)
                          at $Proxy0.getDaily(Unknown Source)
    

    错误的大意就是:不能够为Flowable创建一个 Call Adapter 。首先想到的可能是Retrofitadapter-rxjava版本过低的问题,于是换成了最新版本

    compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
    

    替换之后还是出现了相同的问题,那就说明不是版本的问题了。去 Google 搜索一番后,找到jakewharton大神的回答说adapter-rxjava目前还不支持Rxjava 2.x。当然这么牛逼的库怎么能不支持Rxjava 2.x呢,jakewharton大神自己写了一个库让Retrofit来支持Rxjava 2.x这里是链接:retrofit2-rxjava2-adapter
    果然加入jakewharton大神的库之后,问题就解决了。需要注意的一个地方是:

    //原来的:
    addCallAdapterFactory(RxJavaCallAdapterFactory.create())
    //修改后的:
    addCallAdapterFactory(RxJava2CallAdapterFactory.create())
    

    后面我看到jakewharton大神的回答是9月份的时候,想必现在官方已经修复这个问题了吧,去Square Github 主页找到retrofit-adapters,官网确实已经更新了retrofit-adapters

    retrofit-adapters

    但是添加依赖的时候,不知道具体的版本号,网上找了一圈也没找到,点击下载JAR包,直接404了,具体不知道怎么回事,等待官方修复这个问题吧。不过错误可以用jakewharton大神的库直接解决。

  • 相关阅读:
    synchronized使用及java中的原子性问题
    Volatile 原理及使用,java并发中的可见性问题
    final 修饰符
    java 常见OPTS参数的含义
    Redis面试题
    Count(1),Count(*),Count(column)区别
    Mysql索引创建及删除
    springboot 非端口模式启动
    sql批量插入缓慢
    sql server sql语句导入数据到execl2007中
  • 原文地址:https://www.cnblogs.com/tonycheng93/p/6346466.html
Copyright © 2011-2022 走看看