关于RxJava2和retrofit2使用的问题

qq_36440137 2017-01-10 09:01:29
在retrofit2配合使用rxjava时候,出现了如下问题:
java.lang.IllegalArgumentException: Unable to create call adapter for io.reactivex.Observable<com.price.take_new.Example> for method NewsService.getUser

依赖:
compile 'io.reactivex.rxjava2:rxjava:2.0.4'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.squareup.okhttp3:okhttp:3.5.0'
compile 'com.google.code.gson:gson:2.8.0'

compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'

这是我的代码:
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.baseUrl("http://takeapp.com.cn/Home/register/")
.build();
NewsService api = retrofit.create(NewsService .class);
api.getUser("13222222222",MD5Tool.md5("123")).subscribeOn(Schedulers.io()).
observeOn(AndroidSchedulers.mainThread()).subscribe(new Consumer<Example>() {
@Override
public void accept(Example example) throws Exception {
Log.e(TAG,"TEST");
}
});

接口代码:
Observable<Example> getUser(@Field("phone_num") String username,@Field("password") String password);

求解决办法~
...全文
2146 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jusenr 2017-11-13
  • 打赏
  • 举报
回复
引用
#15
compile 'com.squareup.retrofit2:adapter-rxjava2:2.2.0' 正解。。。 感谢兄弟!
B111111N 2017-05-25
  • 打赏
  • 举报
回复
compile 'com.squareup.retrofit2:adapter-rxjava2:2.2.0' //适配器
  • 打赏
  • 举报
回复
哥们,问题处理了么,我也出现了这样的问题
  • 打赏
  • 举报
回复
大兄弟,你的问题解决了吗,我也出现了这样的问题
He.xj 2017-03-22
  • 打赏
  • 举报
回复
引用 11 楼 ai_1018460118 的回复:
[quote=引用 9 楼 a3100293282 的回复:] 楼主这个问题解决了吗,我也遇到了!!
你使用了 rxjava2, compile 'io.reactivex.rxjava2:rxjava:2.0.4' 但是retrofit2一开始是基于rxjava开发的适配器即adapter-rxjava,这个适配器只适合rxjava 如果想使用rxjava2就得使用adapter-rxjava2适配器 这个适配器有两个,一个是retrofit2官方设计的(上线不久),另外一个就是jakewharton大神弄出来的retrofit2-rxjava2-adapter适配器[/quote] 我找到了这个retrofit2-rxjava2-adapter,这是正解。
佐佐木兮左左 2017-03-21
  • 打赏
  • 举报
回复
引用 9 楼 a3100293282 的回复:
楼主这个问题解决了吗,我也遇到了!!
你使用了 rxjava2, compile 'io.reactivex.rxjava2:rxjava:2.0.4' 但是retrofit2一开始是基于rxjava开发的适配器即adapter-rxjava,这个适配器只适合rxjava 如果想使用rxjava2就得使用adapter-rxjava2适配器 这个适配器有两个,一个是retrofit2官方设计的(上线不久),另外一个就是jakewharton大神弄出来的retrofit2-rxjava2-adapter适配器
He.xj 2017-03-15
  • 打赏
  • 举报
回复
楼主这个问题解决了吗,我也遇到了!!
m0_liguijun 2017-01-13
  • 打赏
  • 举报
回复
怀君 2017-01-13
  • 打赏
  • 举报
回复
引用 6 楼 qq_36440137 的回复:
[quote=引用 5 楼 u013290250 的回复:] [quote=引用 4 楼 qq_36440137 的回复:] [quote=引用 3 楼 u013290250 的回复:] [quote=引用 2 楼 qq_36440137 的回复:] [quote=引用 1 楼 u013290250 的回复:] 你用的是POST请求吧
对的,请问你能告诉我原因吗?[/quote] @FormUrlEncoded @POST("user-login/login") Observable<LoginModel> loginData(@Field("username") String username, @Field("password") String password); 应该是少了这两个注解[/quote] 已经加上了,并不行[/quote] 那应该就是你的写法有问题,建议再去看看别人怎么写的[/quote] 我想说我就是按照别人的教程一步步写的,但还是谢谢你[/quote] 问题解决了吗?你把教程地址贴一下,我去瞅瞅
qq_36440137 2017-01-12
  • 打赏
  • 举报
回复
引用 5 楼 u013290250 的回复:
[quote=引用 4 楼 qq_36440137 的回复:] [quote=引用 3 楼 u013290250 的回复:] [quote=引用 2 楼 qq_36440137 的回复:] [quote=引用 1 楼 u013290250 的回复:] 你用的是POST请求吧
对的,请问你能告诉我原因吗?[/quote] @FormUrlEncoded @POST("user-login/login") Observable<LoginModel> loginData(@Field("username") String username, @Field("password") String password); 应该是少了这两个注解[/quote] 已经加上了,并不行[/quote] 那应该就是你的写法有问题,建议再去看看别人怎么写的[/quote] 我想说我就是按照别人的教程一步步写的,但还是谢谢你
qq_36440137 2017-01-12
  • 打赏
  • 举报
回复
引用 3 楼 u013290250 的回复:
[quote=引用 2 楼 qq_36440137 的回复:] [quote=引用 1 楼 u013290250 的回复:] 你用的是POST请求吧
对的,请问你能告诉我原因吗?[/quote] @FormUrlEncoded @POST("user-login/login") Observable<LoginModel> loginData(@Field("username") String username, @Field("password") String password); 应该是少了这两个注解[/quote] 已经加上了,并不行
怀君 2017-01-12
  • 打赏
  • 举报
回复
引用 4 楼 qq_36440137 的回复:
[quote=引用 3 楼 u013290250 的回复:] [quote=引用 2 楼 qq_36440137 的回复:] [quote=引用 1 楼 u013290250 的回复:] 你用的是POST请求吧
对的,请问你能告诉我原因吗?[/quote] @FormUrlEncoded @POST("user-login/login") Observable<LoginModel> loginData(@Field("username") String username, @Field("password") String password); 应该是少了这两个注解[/quote] 已经加上了,并不行[/quote] 那应该就是你的写法有问题,建议再去看看别人怎么写的
怀君 2017-01-11
  • 打赏
  • 举报
回复
引用 2 楼 qq_36440137 的回复:
[quote=引用 1 楼 u013290250 的回复:] 你用的是POST请求吧
对的,请问你能告诉我原因吗?[/quote] @FormUrlEncoded @POST("user-login/login") Observable<LoginModel> loginData(@Field("username") String username, @Field("password") String password); 应该是少了这两个注解
qq_36440137 2017-01-11
  • 打赏
  • 举报
回复
引用 1 楼 u013290250 的回复:
你用的是POST请求吧
对的,请问你能告诉我原因吗?
怀君 2017-01-11
  • 打赏
  • 举报
回复
你用的是POST请求吧

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧