使用Retrofit和Rxjava时出错

我正在尝试实现RxJava和Retrofit2。但是我收到此错误java.lang.IllegalArgumentException:无法为rx.Observable创建调用适配器

这是我的代码:-MainActivity

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button bFetch = (Button) findViewById(R.id.button_fetch);
    assert bFetch != null;
    bFetch.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            GithubService service;

            final Retrofit retrofit = new Retrofit.Builder()
                    .baseUrl(GithubService.SERVICE_ENDPOINT)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();

            service = retrofit.create(GithubService.class);

            Observable<Github> observable = service.getUser("writingminds");
            observable.subscribeOn(Schedulers.newThread())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(new Subscriber<Github>() {
                        @Override
                        public final void onCompleted() {
                            // do nothing
                        }

                        @Override
                        public final void onError(Throwable e) {
                            Log.e("GithubDemo", e.getMessage());
                        }

                        @Override
                        public final void onNext(Github response) {
                            Log.e("---%s", response.getBlog());
                            Log.e("--%s", response.getLogin());
                        }
                    });
        }
    });
}

}

这是我的接口GithubService

public interface GithubService {
String SERVICE_ENDPOINT = "https://api.github.com";

@GET("/users/{login}")
Observable<Github> getUser(@Path("login") String login);
}

这是我的模特:

public class Github {
private String login;
private String blog;
private int public_repos;

public String getLogin() {
    return login;
}

public String getBlog() {
    return blog;
}

public int getPublicRepos() {
    return public_repos;
  }
}

先感谢您

黑带

您需要告诉Retrofit,您要使用RxJava。您可以使用

addCallAdapterFactory(RxJavaCallAdapterFactory.create())

例如

final Retrofit retrofit = new Retrofit.Builder()
   .baseUrl(GithubService.SERVICE_ENDPOINT)
   .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
   .addConverterFactory(GsonConverterFactory.create())
   .build();

您将不得不添加

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

到您的build.gradle依赖列表(如果还没有)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Retrofit rxjava concatWith时堆栈溢出

来自分类Dev

使用 RxJava 和 Retrofit 处理不同的流程

来自分类Dev

使用Retrofit和GSON解析JSON,尝试解析和获取回调时出错。

来自分类Dev

使用Retrofit和RxJava,当不直接映射到模型对象时,如何反序列化JSON?

来自分类Dev

使用Retrofit和Realm纠正RxJava中的流程

来自分类Dev

在Android中使用RxJava和Retrofit处理列表

来自分类Dev

使用Retrofit和Realm纠正RxJava中的流程

来自分类Dev

使用Retrofit2和RxJava获取分页URL

来自分类Dev

使用 RXJava 和 Retrofit 正确实现的网络调用 - Android

来自分类Dev

RxJava 和 Retrofit 使用多个平面图处理分页

来自分类Dev

如何使用 Kotlin、Retrofit 和 RXjava 填充列表视图

来自分类Dev

使用Selenium Webdriver和FireFox时出错

来自分类Dev

使用扭曲和绿色按钮时出错

来自分类Dev

使用XHProf和XHGui时出错

来自分类Dev

的python:使用strptime和timedelta时出错

来自分类Dev

使用IBM WAS ConnectionFactory和Spring时出错

来自分类Dev

使用shlex和子流程时出错

来自分类Dev

使用 TcpClient 和 StreamWriter 时出错

来自分类Dev

使用 fprintf 和 fscanf 时出错

来自分类Dev

使用 setOnclickListener 和 View 时出错

来自分类Dev

RxJava和Retrofit2:NetworkOnMainThreadException

来自分类Dev

RxJava和Retrofit-链服务响应

来自分类Dev

NetworkOnMainThreadException与Retrofit-beta2和rxjava

来自分类Dev

RxJava和Retrofit-链服务响应

来自分类Dev

使用@Required和@Autowired时创建bean时出错

来自分类Dev

使用RxJava和Retrofit链接两个Web服务调用

来自分类Dev

使用RxJava和Retrofit遍历列表并根据子查询扩展结果

来自分类Dev

Android,无法使用 Retrofit 和 RxJava 2 构建应用程序

来自分类Dev

使用RxJava + Retrofit 2的正确方法

Related 相关文章

  1. 1

    使用Retrofit rxjava concatWith时堆栈溢出

  2. 2

    使用 RxJava 和 Retrofit 处理不同的流程

  3. 3

    使用Retrofit和GSON解析JSON,尝试解析和获取回调时出错。

  4. 4

    使用Retrofit和RxJava,当不直接映射到模型对象时,如何反序列化JSON?

  5. 5

    使用Retrofit和Realm纠正RxJava中的流程

  6. 6

    在Android中使用RxJava和Retrofit处理列表

  7. 7

    使用Retrofit和Realm纠正RxJava中的流程

  8. 8

    使用Retrofit2和RxJava获取分页URL

  9. 9

    使用 RXJava 和 Retrofit 正确实现的网络调用 - Android

  10. 10

    RxJava 和 Retrofit 使用多个平面图处理分页

  11. 11

    如何使用 Kotlin、Retrofit 和 RXjava 填充列表视图

  12. 12

    使用Selenium Webdriver和FireFox时出错

  13. 13

    使用扭曲和绿色按钮时出错

  14. 14

    使用XHProf和XHGui时出错

  15. 15

    的python:使用strptime和timedelta时出错

  16. 16

    使用IBM WAS ConnectionFactory和Spring时出错

  17. 17

    使用shlex和子流程时出错

  18. 18

    使用 TcpClient 和 StreamWriter 时出错

  19. 19

    使用 fprintf 和 fscanf 时出错

  20. 20

    使用 setOnclickListener 和 View 时出错

  21. 21

    RxJava和Retrofit2:NetworkOnMainThreadException

  22. 22

    RxJava和Retrofit-链服务响应

  23. 23

    NetworkOnMainThreadException与Retrofit-beta2和rxjava

  24. 24

    RxJava和Retrofit-链服务响应

  25. 25

    使用@Required和@Autowired时创建bean时出错

  26. 26

    使用RxJava和Retrofit链接两个Web服务调用

  27. 27

    使用RxJava和Retrofit遍历列表并根据子查询扩展结果

  28. 28

    Android,无法使用 Retrofit 和 RxJava 2 构建应用程序

  29. 29

    使用RxJava + Retrofit 2的正确方法

热门标签

归档