改造と rxkotlin を使用して API を呼び出しています。しかし、フラグメントを開始すると、通知なしでアプリがクラッシュするか、スタジオの logcat にエラー メッセージが表示されません。これがコードです。ここから、apis インターフェイスを呼び出します
try {
if (disposable == null) {
Log.e("disposable","reached")
disposable = api.getUsers(api_key,
"json",
"1",
"flickr.interestingness.getList")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe (
{
data: FlickrPhoto? -> Log.e("flickr photo",data!!.photo?.get(0)?.secret)
}
)
Log.e("disposable1","reached")
}
}
catch (e: Exception){
Log.e("flickr fragment",e.toString())
}
API インターフェイス コードは次のとおりです。
interface API {
@GET("services/rest")
fun getUsers(@Query("format") format : String,
@Query("api_key") api_key : String,
@Query("nojsoncallback") nojsoncallback : String,
@Query("method") method : String
) : Observable<FlickrPhoto>
companion object{
fun createView():API{
Log.e("apis","creatview")
try {
val retrofit = Retrofit.Builder()
.baseUrl("https://api.flickr.com/")
.addCallAdapterFactory(
RxJava2CallAdapterFactory.create())
.addConverterFactory(
GsonConverterFactory.create())
.build()
Log.e("retrofit",retrofit.toString())
return retrofit.create(API::class.java)
}
catch (e: Exception){
Log.e("api exception",e.message)
}
Log.e("apis","creatview retrofit null")
return null!!
}
}
}
ログキャットは次のとおりです。
11-07 03:47:07.527 11627-11627/com.redvelvet.abhi.imagesmapling E/disposable: reached
11-07 03:47:07.529 11627-11627/com.redvelvet.abhi.imagesmapling E/apis: creatview
11-07 03:47:07.620 11627-11627/com.redvelvet.abhi.imagesmapling E/retrofit: retrofit2.Retrofit@ec11d24
11-07 03:47:07.751 11627-11627/com.redvelvet.abhi.imagesmapling E/disposable1: reached