上代码:
//手动创建一个OkHttpClient并设置超时时间 OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder(); httpClientBuilder.connectTimeout(3, TimeUnit.SECONDS); httpClientBuilder.readTimeout(2, TimeUnit.SECONDS); httpClientBuilder.writeTimeout(2, TimeUnit.SECONDS); httpClientBuilder.addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)).build(); Retrofit retrofit = new Retrofit.Builder() .client(httpClientBuilder.build()) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .baseUrl("http://alpha.xxxx.com:8021") .build(); INetService tService = retrofit.create(INetService.class); Observer<AdPicResponse> observer = new Observer<AdPicResponse>(){ @Override public void onSubscribe(Disposable d){ } @Override public void onNext(AdPicResponse value){ } @Override public void onError(Throwable e){ } @Override public void onComplete(){ } };tService .loadStartInfo(params).subscribeOn(Schedulers.io()) .unsubscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(observer);
问题1:
E/CrashHandlerManager: 保存信息 : java.lang.IllegalArgumentException: Unable to create call adapter for
io.reactivex.Observable<com.mxxxe.xxx.launcher.startinfo.bean.xxxResponse>
for method INetService.loadStartInfo
at retrofit2.ServiceMethod$Builder.methodError(ServiceMethod.java:751)
at retrofit2.ServiceMethod$Builder.createCallAdapter(ServiceMethod.java:236)
at retrofit2.ServiceMethod$Builder.build(ServiceMethod.java:161)
解决:
compile 'com.squareup.retrofit2:adapter-rxjava2:2.2.0'
addCallAdapterFactory(RxJava2CallAdapterFactory.create())
问题2:
NoClassDefFoundError: Failed resolution of: Lokhttp3/internal/Platform
解决:
compile 'com.squareup.okhttp3:logging-interceptor:3.4.1' compile 'com.squareup.okhttp3:okhttp:3.4.1'