当我在带有API 21的手机上的改装API中使用Observable时出现此错误:
java.lang.NoClassDefFoundError: io.reactivex.Observable
但是在使用API 19的手机或使用API 23的模拟器上它可以正常工作。
这是我的API接口:
import io.reactivex.Observable;
import retrofit2.Response;
import retrofit2.http.Body;
import retrofit2.http.POST;
public interface ApiService {
/**
* Created by Mohsen on 5/10/2017.
*
*/
@POST("/cp/api/")
Observable<Response<Integer>> Get_BuyBox_Count(@Body Object request);
}
这是我的改造设置:
@Provides
@Application_Scope
@Store_Retrofit_Qualifier
public Retrofit Store_retrofit(OkHttpClient client) {
return new Retrofit.Builder()
.baseUrl(Urls.Sotre_Base_Url)
.client(client)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(JSONConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build();
}
我的依赖关系:
compile 'com.squareup.retrofit2:retrofit:2.2.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'io.reactivex.rxjava2:rxjava:2.0.1'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
答案 0 :(得分:5)
最后,在我找到解决方案之后。
问题是Rxjava与Constrainlayout冲突
compile 'com.android.support.constraint:constraint-layout:1.0.2'
与
compile 'io.reactivex:rxjava:1.2.6'