java.lang.NoClassDefFoundError:io.reactivex.Observable

时间:2017-06-01 06:53:26

标签: android api retrofit rx-android rx-java2

当我在带有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'

1 个答案:

答案 0 :(得分:5)

最后,在我找到解决方案之后。

问题是Rxjava与Constrainlayout冲突

compile 'com.android.support.constraint:constraint-layout:1.0.2'

compile 'io.reactivex:rxjava:1.2.6'