【问题标题】:Cannot resolve symbol 'RxJavaCallAdapterFactory'无法解析符号“RxJavaCallAdapterFactory”
【发布时间】:2018-05-24 07:43:22
【问题描述】:

我想将retrofitRxJava 集成,但它无法解析符号“RxJavaCallAdapterFactory”。

这是我的代码

RetrofitService.java

import io.reactivex.Observable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;

public interface RetrofitService {

    @FormUrlEncoded
    @POST("api/do.php")
    Observable<String> getUserToken(@Field("action") String action,
                                    @Field("name") String name,
                                    @Field("password") String password);
}

MainActivity.java

import android.leedev.cn.readertool.R;
import android.leedev.cn.readertool.model.http.service.RetrofitService;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

import io.reactivex.Observable;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import retrofit2.Retrofit;
import retrofit2.converter.scalars.ScalarsConverterFactory;

public class MainActivity extends AppCompatActivity {

    private static final String TAG = MainActivity.class.getSimpleName();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        login();
    }

    private void login() {
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("http://api.xingjk.cn/")
                .addConverterFactory(ScalarsConverterFactory.create())
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .build();

        RetrofitService service = retrofit.create(RetrofitService.class);
        Observable<String> observable = service.getUserToken("loginIn", "******", "6205240");

        observable.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<String>() {
                    @Override
                    public void onSubscribe(Disposable d) {
                        Log.i(TAG, "onSubscribe: ");
                    }

                    @Override
                    public void onNext(String s) {
                        Log.i(TAG, "onNext: " + s.toString());
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.i(TAG, "onError: ");
                    }

                    @Override
                    public void onComplete() {
                        Log.i(TAG, "onComplete: ");
                    }
                });
    }

}

期待您的帮助,谢谢!

【问题讨论】:

    标签: java android rx-java retrofit2 rx-java2


    【解决方案1】:

    添加:

    implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
    

    致您的dependencies

    the documentation

    还从 RxJavaCallAdapterFactory 更新为 RxJava2CallAdapterFactory

    【讨论】:

    • 非常感谢,问题解决了。我会看到文件。?
    【解决方案2】:

    你需要添加这个:

     compile group: 'com.squareup.retrofit2', name: 'adapter-rxjava2', version: '2.3.0'
    

    在 gradle 依赖项中

    看看这个:https://stackoverflow.com/a/37733206/3637755

    【讨论】:

      猜你喜欢
      • 2018-11-11
      • 1970-01-01
      • 1970-01-01
      • 2021-02-04
      • 2016-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多