RetrofitとEventBusを組み合わせてAPIクライアントを作っていましたが、次は何かと耳にするRxJava(RxAndroid)を使ってみましたが、使いかたを理解するのにも少し時間がかかり、その後少しつまずいたことがあったので残しておきます(後から参考にしたブログとかQiitaよく読んだら自分がアホだったことに気が付きましたが)。
Retrofit retrofit = new Retrofit.Builder()
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.baseUrl("http://api.hogehoge.com/")
.build();
というコードが有り、
addCallAdapterFactory(RxJavaCallAdapterFactory.create())
部分の引数の型の解決が出来ていませんでした。
なんでだろうと思いつつ、ひたすらググッてGitHubのissueを見つけ、この通りのことをしていました。
つまり、
compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta2'
としていました。
ここで指定しているアダプタはRetrofit1用のアダプタです。
Retrofit2を使用している場合は、
compile group: 'com.squareup.retrofit2', name: 'adapter-rxjava', version: '2.0.2'
となります。(最新バージョンはここから)
よく記事を読んでない自分が全て悪いという内容でしたが、こういうミスもあったということで残しておきます。
ただ、ここでは間違っているadapterをGradleで指定していたのでご注意を。