繁体   English   中英

带有Retrofit 2.0的RxAndroid

[英]RxAndroid with Retrofit 2.0

我有界面

 @GET("/data, 2.5/forecast/daily")
   Observable<MultilingualWeather> getWeatherByIdWithMultilingual(
    @Query("id") String id,
    @Query("lang") String lang,
    @Query("appid") String appid);

在以下配置中调用MainActivity

 Retrofit retrofit_weather = new Retrofit.Builder().
        baseUrl(BASE_URL).
        addConverterFactory(GsonConverterFactory.create()).
        addCallAdapterFactory(RxJavaCallAdapterFactory.create()).
        build();

GetWeatherForLocation getWeather = retrofit_weather.create(GetWeatherForLocation.class);

Observable<MultilingualWeather> call_observable = getWeather.
            getWeatherByIdWithMultilingual(
            CITY_ID,
            LANG,
            KEY
    );

    subscription = call_observable.subscribe(subscriber);

以下文件依赖项

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
compile 'io.reactivex:rxjava:1.0.16'
compile 'io.reactivex:rxandroid:1.0.1'
compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta1'

}

毕竟这引起了异常

 FATAL EXCEPTION: main Process: com.example.alex.weatherclient, PID: 16658 java.lang.AbstractMethodError: abstract method "retrofit.CallAdapter retrofit.CallAdapter$Factory.get(java.lang.reflect.Type, java.lang.annotation.Annotation[], retrofit.Retrofit)"         

替换为build.gradle

compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta1' 

compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta2'

看起来像错字。 您的界面使用getWeatherByIdWithMultilingual而您的代码使用getWeatherByIdWithMultilingual2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM