简体   繁体   English

错误:IllegalArgumentException:无法为retrofit2.Response 创建调用适配器

[英]Error: IllegalArgumentException: Unable to create call adapter for retrofit2.Response

I have gone through this tutorial ( http://www.duchess-france.org/accelerometer-time-series-and-prediction-with-android-cassandra-and-spark/ ) to create an Accelerometer Rest API, just to see the data values on my localhost server at endpoint ( http://192.168.0.104/acceleration ).我已经完成了本教程( http://www.duchess-france.org/accelerometer-time-series-and-prediction-with-android-cassandra-and-spark/ )来创建一个加速度计 Rest API,只是为了看看端点 ( http://192.168.0.104/acceleration ) 本地主机服务器上的数据值。 But I'm facing an error "unable to create call adapter for retrofit2.Response"但是我遇到了“无法为retrofit2.Response创建调用适配器”的错误

However in the tutorial Retrofit (< 2.0) was used, I'm using Retorfit2.0 (2.1).但是在教程中使用了 Retrofit (< 2.0),我使用的是 Retorfit2.0 (2.1)。 So few changes have been made according to the updated library.因此,根据更新的库进行了很少的更改。

Here is my below AccelerometerAct.java这是我下面的AccelerometerAct.java

package accelerometer.sensor.com.acceleration;

import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.util.Date;

import accelerometer.sensor.com.acceleration.model.Acceleration;
import retrofit2.Retrofit;



public class AccelerometerAct extends AppCompatActivity implements SensorEventListener{

    private String restURL;
    private TextView acceleration;
    private Button myStartButton;
    private Button myStopButton;

    private AccelerometerAPI accelerometerAPI;

    private SensorManager sm;
    private Sensor accelerometer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.accelerometer_activity);
        acceleration = (TextView) findViewById(R.id.acc);


        sm = (SensorManager) getSystemService(SENSOR_SERVICE);
        accelerometer = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

        initRestApi();
        initActionButtons();
    }

    @Override
    protected void onResume() {
        super.onResume();
    }


    @Override
    public void onSensorChanged(SensorEvent event) {
        Acceleration capturedAcceleration = getAccelerationFromSensor(event);
        updateTextView(capturedAcceleration);
        new SendAccelerationAsyncTask().execute(capturedAcceleration);
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        //Do nothing
    }

    private void initRestApi() {
        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            restURL = extras.getString(MainActivity.URL);
        }

        Retrofit restAdapter = new Retrofit.Builder()
                .baseUrl(restURL)
                .build();

        accelerometerAPI = restAdapter.create(AccelerometerAPI.class);
    }


    private void initActionButtons() {
        myStartButton = (Button) findViewById(R.id.start);
        myStopButton = (Button) findViewById(R.id.stop);

        myStartButton.setVisibility(View.VISIBLE);
        myStopButton.setVisibility(View.GONE);

        myStartButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startSensor();
                myStartButton.setVisibility(View.GONE);
                myStopButton.setVisibility(View.VISIBLE);
            }
        });

        myStopButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                stopSensor();
                myStartButton.setVisibility(View.VISIBLE);
                myStopButton.setVisibility(View.GONE);
                finish();
            }
        });
    }

    private void startSensor() {
        sm.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_NORMAL);
    }

    private void stopSensor() {
        sm.unregisterListener(this);
    }


    private void updateTextView(Acceleration capturedAcceleration) {
        acceleration.setText("X:" + capturedAcceleration.getX() +
                "\nY:" + capturedAcceleration.getY() +
                "\nZ:" + capturedAcceleration.getZ() +
                "\nTimestamp:" + capturedAcceleration.getTimestamp());
    }


    private Acceleration getAccelerationFromSensor(SensorEvent event) {
        long timestamp = (new Date()).getTime() + (event.timestamp - System.nanoTime()) / 1000000L;
        return new Acceleration(event.values[0], event.values[1], event.values[2], timestamp);
    }


    private class SendAccelerationAsyncTask extends AsyncTask<Acceleration, Void, Void>{

        @Override
        protected Void doInBackground(Acceleration... params) {
            try {
                accelerometerAPI.sendAccelerationValues(params[0]);
            } catch(Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    }

} }

Here is my MainActivity.java这是我的MainActivity.java

package accelerometer.sensor.com.acceleration;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

    public static final String URL = "restURL";
    private EditText restURL;

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

        restURL = (EditText) findViewById(R.id.inUrl);

        final Button myStartButton = (Button) findViewById(R.id.startAct);
        myStartButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.setClass(MainActivity.this, AccelerometerAct.class);
                intent.putExtra(URL, restURL.getText().toString());
                startActivity(intent);
            }
        });
    }
}

And my Acceleration.java model还有我的Acceleration.java模型

    package accelerometer.sensor.com.acceleration.model;



public class Acceleration {

    private long timestamp;
    private double x;
    private double y;
    private double z;

    public Acceleration(float x_value, float y_value, float z_value, long     timestamp) {
        x= new Double(""+x_value);
    y= new Double(""+y_value);
    z= new Double(""+z_value);
        this.timestamp = timestamp;
    }

    public long getTimestamp() {
        return timestamp;
    }

    public double getX() {
        return x;
    }

    public double getY() {
        return y;
    }

    public double getZ() {
        return z;
    }
}

Here is my interface AccelerometerAPI.java这是我的界面 AccelerometerAPI.java

package accelerometer.sensor.com.acceleration;


import accelerometer.sensor.com.acceleration.model.Acceleration;
import retrofit2.Response;
import retrofit2.http.Body;
import retrofit2.http.POST;



public interface AccelerometerAPI {

    @POST("/acceleration")
    Response<Acceleration> sendAccelerationValues(@Body Acceleration acceleration);
}

Here is the logcat showing the error这是显示错误的 logcat

**01-24 09:25:48.439 1968-2023/accelerometer.sensor.com.acceleration 

W/System.err: java.lang.IllegalArgumentException: Unable to create call adapter for retrofit2.Response<accelerometer.sensor.com.acceleration.model.Acceleration>**
01-24 09:25:48.439 1968-2023/accelerometer.sensor.com.acceleration W/System.err:     for method AccelerometerAPI.sendAccelerationValues
01-24 09:25:48.439 1968-2023/accelerometer.sensor.com.acceleration W/System.err:     at retrofit2.ServiceMethod$Builder.methodError(ServiceMethod.java:720)
01-24 09:25:48.439 1968-2023/accelerometer.sensor.com.acceleration W/System.err:     at retrofit2.ServiceMethod$Builder.createCallAdapter(ServiceMethod.java:234)
01-24 09:25:48.439 1968-2023/accelerometer.sensor.com.acceleration W/System.err:     at retrofit2.ServiceMethod$Builder.build(ServiceMethod.java:160)
01-24 09:25:48.439 1968-2023/accelerometer.sensor.com.acceleration W/System.err:     at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:166)
01-24 09:25:48.439 1968-2023/accelerometer.sensor.com.acceleration W/System.err:     at retrofit2.Retrofit$1.invoke(Retrofit.java:145)
01-24 09:25:48.439 1968-2023/accelerometer.sensor.com.acceleration W/System.err:     at java.lang.reflect.Proxy.invoke(Proxy.java:393)
01-24 09:25:48.439 1968-2023/accelerometer.sensor.com.acceleration W/System.err:     at $Proxy0.sendAccelerationValues(Unknown Source)
01-24 09:25:48.439 1968-2023/accelerometer.sensor.com.acceleration W/System.err:     at **accelerometer.sensor.com.acceleration.AccelerometerAct$SendAccelerationAsyncTask.doInBackground(AccelerometerAct.java:134)**
01-24 09:25:48.439 1968-2023/accelerometer.sensor.com.acceleration W/System.err:     at **accelerometer.sensor.com.acceleration.AccelerometerAct$SendAccelerationAsyncTask.doInBackground(AccelerometerAct.java:129)**
01-24 09:25:48.439 1968-2023/accelerometer.sensor.com.acceleration W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:295)
01-24 09:25:48.439 1968-2023/accelerometer.sensor.com.acceleration W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
01-24 09:25:48.439 1968-2023/accelerometer.sensor.com.acceleration W/System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
01-24 09:25:48.439 1968-2023/accelerometer.sensor.com.acceleration W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
01-24 09:25:48.439 1968-2023/accelerometer.sensor.com.acceleration W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
01-24 09:25:48.441 1968-2023/accelerometer.sensor.com.acceleration W/System.err:     at java.lang.Thread.run(Thread.java:818)

If you are using Kotlin then look for these things :-如果您正在使用 Kotlin,请查找以下内容:-

  1. "suspend" is added in the function declaration in you API service class.在您的 API 服务类的函数声明中添加了“暂停”。
  2. Your Data class (or Model) is setup properly您的数据类(或模型)设置正确

I think, this question may help you.我想, 这个问题可能对你有帮助。

Short answer: return Call<Acceleration> in your AccelerometerAPI interface.简短回答:在您的AccelerometerAPI接口中返回Call<Acceleration>

public interface AccelerometerAPI {
    @POST("/acceleration")
    Call<Acceleration> sendAccelerationValues(@Body Acceleration acceleration);
}

Also add dependencies in build.gradle:还要在 build.gradle 中添加依赖项:

compile 'com.squareup.retrofit:retrofit:2.0.1'
compile 'com.squareup.retrofit:converter-gson:2.0.1'

And build Retrofit like that:并像这样构建Retrofit

Retrofit rest = new Retrofit.Builder()
    .baseUrl(endpoint)
    .addConverterFactory(GsonConverterFactory.create())
    .build();

找不到retrofit2.Response 的调用适配器<io.reactivex.single< div><div id="text_translate"><p> Android Studio 4.0</p><p> build.gradle:</p><pre> implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation "com.squareup.retrofit2:converter-gson:$retrofit_version" implementation "com.squareup.retrofit2:retrofit:2.6.0" implementation 'io.reactivex.rxjava2:rxjava:2.2.10' implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' implementation 'com.squareup.retrofit2:adapter-rxjava2:2.4.0'</pre><p> 配置 Retrofit:</p><pre> import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor import retrofit2.Retrofit import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory import retrofit2.converter.gson.GsonConverterFactory private val builder = Retrofit.Builder().baseUrl(BuildConfig.API_BASE_URL).addCallAdapterFactory(RxJava2CallAdapterFactory.create()).addConverterFactory(GsonConverterFactory.create(gson)).client(httpClient.build())</pre><p> 我的界面</p><pre>import com.myproject.androidtestproject.api.model.Film import io.reactivex.Single import retrofit2.Response import retrofit2.http.GET interface TestRxJavaRestClient { @GET("films") fun getFilms(): Response&lt;Single&lt;List&lt;Film&gt;&gt;&gt; } import io.reactivex.Single import retrofit2.Response class TransportServiceRxJava { companion object { private val testRxJavaRestClient = RestClientFactory.createRestClient(TestRxJavaRestClient::class.java) fun getFilms(): Response&lt;Single&lt;List&lt;Film&gt;&gt;&gt; { return testRxJavaRestClient.getFilms() } } }</pre><p> 在我的视图模型中:</p><pre> import io.reactivex.Single class FilmsRxJavaViewModel(application: Application): AndroidViewModel(application) { companion object { private val TAG = FilmsRxJavaViewModel::class.java.name } lateinit var filmsList: Single&lt;List&lt;Film&gt;&gt; init { Debug.d(TAG, "init:") //isShowProgress.value = true loadData() } fun loadData() { Debug.d(TAG, "loadData:") val response = TransportServiceRxJava.getFilms() val isSuccessResponse = response.isSuccessful if (isSuccessResponse) { // code &gt;= 200 &amp;&amp; code &lt; 300; filmsList = response.body()., } else { // error - status (300-599) or network failure Debug:w(TAG. "loadData_error. status (300-599) or network_failure") val message = response.errorResponse,message Debug:w(TAG, "loadData: message = $message") } } }</pre><p> 但我得到运行时错误:</p><pre> Process: com.myproject.androidtestproject.debug, PID: 6574 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myproject.androidtestproject.debug/com.myproject.androidtestproject.ui.activity.FilmsRxJavaActivity}: java.lang.RuntimeException: Cannot create an instance of class com.myproject.androidtestproject.viewmodel.FilmsRxJavaViewModel at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) Caused by: java.lang.RuntimeException: Cannot create an instance of class com.myproject.androidtestproject.viewmodel.FilmsRxJavaViewModel at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:275) at androidx.lifecycle.SavedStateViewModelFactory.create(SavedStateViewModelFactory.java:106) at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:185) at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150) at com.myproject.androidtestproject.ui.activity.FilmsRxJavaActivity.init(FilmsRxJavaActivity.kt:57) at com.myproject.androidtestproject.ui.activity.FilmsRxJavaActivity.onCreate(FilmsRxJavaActivity.kt:46) at android.app.Activity.performCreate(Activity.java:7802) at android.app.Activity.performCreate(Activity.java:7791) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)... 11 more Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:343) at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:267)... 20 more Caused by: java.lang.IllegalArgumentException: Unable to create call adapter for retrofit2.Response&lt;io.reactivex.Single&lt;java.util.List&lt;com.myproject.androidtestproject.api.model.Film&gt;&gt;&gt; for method TestRxJavaRestClient.getFilms at retrofit2.Utils.methodError(Utils.java:52) at retrofit2.HttpServiceMethod.createCallAdapter(HttpServiceMethod.java:105) at retrofit2.HttpServiceMethod.parseAnnotations(HttpServiceMethod.java:66) at retrofit2.ServiceMethod.parseAnnotations(ServiceMethod.java:37) at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:170) at retrofit2.Retrofit$1.invoke(Retrofit.java:149) at java.lang.reflect.Proxy.invoke(Proxy.java:1006) at $Proxy0.getFilms(Unknown Source) at com.myproject.androidtestproject.service.transport.TransportServiceRxJava$Companion.getFilms(TransportServiceRxJava.kt:21) at com.myproject.androidtestproject.viewmodel.FilmsRxJavaViewModel.loadData(FilmsRxJavaViewModel.kt:26) at com.myproject.androidtestproject.viewmodel.FilmsRxJavaViewModel.&lt;init&gt;(FilmsRxJavaViewModel.kt:21)... 23 more Caused by: java.lang.IllegalArgumentException: Could not locate call adapter for retrofit2.Response&lt;io.reactivex.Single&lt;java.util.List&lt;com.myproject.androidtestproject.api.model.Film&gt;&gt;&gt;. Tried: * retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory * retrofit2.CompletableFutureCallAdapterFactory * retrofit2.DefaultCallAdapterFactory at retrofit2.Retrofit.nextCallAdapter(Retrofit.java:241) at retrofit2.Retrofit.callAdapter(Retrofit.java:205) at retrofit2.HttpServiceMethod.createCallAdapter(HttpServiceMethod.java:103)... 32 more</pre> </div></io.reactivex.single<> - Could not locate call adapter for retrofit2.Response<io.reactivex.Single

暂无
暂无

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

相关问题 无法为 retrofit2.Response<...> 创建调用适配器 - Unable to create call adapter for retrofit2.Response<...> RxAndroid 和 Retrofit:无法为 io.reactivex.Observable 创建调用适配器<retrofit2.Response<okhttp3.ResponseBody> &gt; - RxAndroid and Retrofit: Unable to create call adapter for io.reactivex.Observable<retrofit2.Response<okhttp3.ResponseBody>> 找不到retrofit2.Response 的调用适配器<io.reactivex.single< div><div id="text_translate"><p> Android Studio 4.0</p><p> build.gradle:</p><pre> implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation "com.squareup.retrofit2:converter-gson:$retrofit_version" implementation "com.squareup.retrofit2:retrofit:2.6.0" implementation 'io.reactivex.rxjava2:rxjava:2.2.10' implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' implementation 'com.squareup.retrofit2:adapter-rxjava2:2.4.0'</pre><p> 配置 Retrofit:</p><pre> import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor import retrofit2.Retrofit import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory import retrofit2.converter.gson.GsonConverterFactory private val builder = Retrofit.Builder().baseUrl(BuildConfig.API_BASE_URL).addCallAdapterFactory(RxJava2CallAdapterFactory.create()).addConverterFactory(GsonConverterFactory.create(gson)).client(httpClient.build())</pre><p> 我的界面</p><pre>import com.myproject.androidtestproject.api.model.Film import io.reactivex.Single import retrofit2.Response import retrofit2.http.GET interface TestRxJavaRestClient { @GET("films") fun getFilms(): Response&lt;Single&lt;List&lt;Film&gt;&gt;&gt; } import io.reactivex.Single import retrofit2.Response class TransportServiceRxJava { companion object { private val testRxJavaRestClient = RestClientFactory.createRestClient(TestRxJavaRestClient::class.java) fun getFilms(): Response&lt;Single&lt;List&lt;Film&gt;&gt;&gt; { return testRxJavaRestClient.getFilms() } } }</pre><p> 在我的视图模型中:</p><pre> import io.reactivex.Single class FilmsRxJavaViewModel(application: Application): AndroidViewModel(application) { companion object { private val TAG = FilmsRxJavaViewModel::class.java.name } lateinit var filmsList: Single&lt;List&lt;Film&gt;&gt; init { Debug.d(TAG, "init:") //isShowProgress.value = true loadData() } fun loadData() { Debug.d(TAG, "loadData:") val response = TransportServiceRxJava.getFilms() val isSuccessResponse = response.isSuccessful if (isSuccessResponse) { // code &gt;= 200 &amp;&amp; code &lt; 300; filmsList = response.body()., } else { // error - status (300-599) or network failure Debug:w(TAG. "loadData_error. status (300-599) or network_failure") val message = response.errorResponse,message Debug:w(TAG, "loadData: message = $message") } } }</pre><p> 但我得到运行时错误:</p><pre> Process: com.myproject.androidtestproject.debug, PID: 6574 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myproject.androidtestproject.debug/com.myproject.androidtestproject.ui.activity.FilmsRxJavaActivity}: java.lang.RuntimeException: Cannot create an instance of class com.myproject.androidtestproject.viewmodel.FilmsRxJavaViewModel at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) Caused by: java.lang.RuntimeException: Cannot create an instance of class com.myproject.androidtestproject.viewmodel.FilmsRxJavaViewModel at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:275) at androidx.lifecycle.SavedStateViewModelFactory.create(SavedStateViewModelFactory.java:106) at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:185) at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150) at com.myproject.androidtestproject.ui.activity.FilmsRxJavaActivity.init(FilmsRxJavaActivity.kt:57) at com.myproject.androidtestproject.ui.activity.FilmsRxJavaActivity.onCreate(FilmsRxJavaActivity.kt:46) at android.app.Activity.performCreate(Activity.java:7802) at android.app.Activity.performCreate(Activity.java:7791) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)... 11 more Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:343) at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:267)... 20 more Caused by: java.lang.IllegalArgumentException: Unable to create call adapter for retrofit2.Response&lt;io.reactivex.Single&lt;java.util.List&lt;com.myproject.androidtestproject.api.model.Film&gt;&gt;&gt; for method TestRxJavaRestClient.getFilms at retrofit2.Utils.methodError(Utils.java:52) at retrofit2.HttpServiceMethod.createCallAdapter(HttpServiceMethod.java:105) at retrofit2.HttpServiceMethod.parseAnnotations(HttpServiceMethod.java:66) at retrofit2.ServiceMethod.parseAnnotations(ServiceMethod.java:37) at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:170) at retrofit2.Retrofit$1.invoke(Retrofit.java:149) at java.lang.reflect.Proxy.invoke(Proxy.java:1006) at $Proxy0.getFilms(Unknown Source) at com.myproject.androidtestproject.service.transport.TransportServiceRxJava$Companion.getFilms(TransportServiceRxJava.kt:21) at com.myproject.androidtestproject.viewmodel.FilmsRxJavaViewModel.loadData(FilmsRxJavaViewModel.kt:26) at com.myproject.androidtestproject.viewmodel.FilmsRxJavaViewModel.&lt;init&gt;(FilmsRxJavaViewModel.kt:21)... 23 more Caused by: java.lang.IllegalArgumentException: Could not locate call adapter for retrofit2.Response&lt;io.reactivex.Single&lt;java.util.List&lt;com.myproject.androidtestproject.api.model.Film&gt;&gt;&gt;. Tried: * retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory * retrofit2.CompletableFutureCallAdapterFactory * retrofit2.DefaultCallAdapterFactory at retrofit2.Retrofit.nextCallAdapter(Retrofit.java:241) at retrofit2.Retrofit.callAdapter(Retrofit.java:205) at retrofit2.HttpServiceMethod.createCallAdapter(HttpServiceMethod.java:103)... 32 more</pre> </div></io.reactivex.single<> - Could not locate call adapter for retrofit2.Response<io.reactivex.Single 翻新无法创建呼叫适配器 - Retrofit Unable to create call adapter Retrofit 无法创建呼叫适配器 - Retrofit is unable to create call adapter java.lang.IllegalArgumentException:无法为接口改造创建调用适配器。Call - java.lang.IllegalArgumentException: Unable to create call adapter for interface retrofit.Call java.lang.IllegalArgumentException:&#39;retrofit2.Response&#39;不是有效的响应主体类型。 你是说ResponseBody吗? - java.lang.IllegalArgumentException: 'retrofit2.Response' is not a valid response body type. Did you mean ResponseBody? Retrofit 2.0:无法为类创建调用适配器 - Retrofit 2.0: Unable to create call adapter for class 无法在翻新版2.0.0中创建呼叫适配器 - Unable to create call adapter in retrofit 2.0.0 改造:无法创建适配器 - Retrofit :Unable to create adapter
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM