有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无直接方法<init>(Ljava/lang/reflect/method;IL2/Converter;)V类Lretrofit2/ParameterHandler$Body

我使用翻新2.6.1,并提供以下服务:

import retrofit2.Response
import retrofit2.http.*

interface DevicesService {

    @POST("devices/link/")
    fun linkDevice(
        @Body deviceInfo: DeviceInfo
    ): Single<Response<UserDevice>>

这引发了一个例外:

io.reactivex.exceptions.UndeliverableException: The exception could not be delivered to the consumer because it has already canceled/disposed the flow or the exception has nowhere to go to begin with. Further reading: https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling | java.lang.NoSuchMethodError: No direct method <init>(Ljava/lang/reflect/Method;ILretrofit2/Converter;)V in class Lretrofit2/ParameterHandler$Body; or its super classes (declaration of 'retrofit2.ParameterHandler$Body' appears in /data/data/com.myapp.app/app_working/vungle.dex)
    at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367)
    at io.reactivex.安卓.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:126)
    at 安卓.os.Handler.handleCallback(Handler.java:794)
    at 安卓.os.Handler.dispatchMessage(Handler.java:99)
    at 安卓.os.Looper.loop(Looper.java:176)
    at 安卓.app.ActivityThread.main(ActivityThread.java:6662)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.安卓.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
    at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:873)
Caused by: java.lang.NoSuchMethodError: No direct method <init>(Ljava/lang/reflect/Method;ILretrofit2/Converter;)V in class Lretrofit2/ParameterHandler$Body; or its super classes (declaration of 'retrofit2.ParameterHandler$Body' appears in /data/data/com.my.app/app_working/vungle.dex)
    at retrofit2.RequestFactory$Builder.parseParameterAnnotation(RequestFactory.java:738)
    at retrofit2.RequestFactory$Builder.parseParameter(RequestFactory.java:306)
    at retrofit2.RequestFactory$Builder.build(RequestFactory.java:193)
    at retrofit2.RequestFactory.parseAnnotations(RequestFactory.java:67)
    at retrofit2.ServiceMethod.parseAnnotations(ServiceMethod.java:26)
    at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:170)
    at retrofit2.Retrofit$1.invoke(Retrofit.java:149)
    at java.lang.reflect.Proxy.invoke(Proxy.java:913)
    at $Proxy3.linkDevice(Unknown Source)
    at com.myapp.app.data.repository.DevicesRepositoryImpl.linkDevice(DevicesRepository.kt:33)
    at com.myapp.app.interactor.devices.LinkDeviceImpl.exec(LinkDevice.kt:18)
    at com.myapp.app.ui.auth.AuthPresenter.linkDevice(AuthPresenter.kt:109)
    at com.myapp.app.ui.auth.AuthPresenter.access$linkDevice(AuthPresenter.kt:24)
    at com.myapp.app.ui.auth.AuthPresenter$authUser$1.accept(AuthPresenter.kt:149)
    at com.myapp.app.ui.auth.AuthPresenter$authUser$1.accept(AuthPresenter.kt:24)
    at io.reactivex.internal.observers.ConsumerSingleObserver.onSuccess(ConsumerSingleObserver.java:62)
    at io.reactivex.internal.operators.single.SingleObserveOn$ObserveOnSingleObserver.run(SingleObserveOn.java:81)
    at io.reactivex.安卓.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:124)
    ... 7 more

正如我在库源代码中看到的,唯一的构造函数具有以下签名:

Body(Method method, int p, Converter<T, RequestBody> converter)

但是我的电话尝试使用Body(Method method, Converter<T, RequestBody> converter)

我已经检查了依赖关系图,2.6.1是所有项目中唯一使用的版本

如何修复它


共 (0) 个答案