Petición multipartida con Retrofit @PartMap Error en Kotlin (Android)

Si estoy usando este código en Java, está funcionando bien. Cuando convierto ese código en kotlin, recibí un error.

Logcat

08-20 23: 46: 51.003 3782-3782 / com.qkangaroo.app W / System.err: java.lang.IllegalArgumentException: El tipo de parámetro no debe include una variable de tipo o comodín: java.util.Map (parámetro # 1) 08-20 23: 46: 51.003 3782-3782 / com.qkangaroo.app W / System.err: para el método ApiInterface.updateCustomerDetail 08-20 23: 46: 51.003 3782-3782 / com.qkangaroo.app W / System.err : en retrofit2.ServiceMethod $ Builder.methodError (ServiceMethod.java:752) 08-20 23: 46: 51.004 3782-3782 / com.qkangaroo.app W / System.err: en retrofit2.ServiceMethod $ Builder.methodError (ServiceMethod. java: 743) 08-20 23: 46: 51.004 3782-3782 / com.qkangaroo.app W / System.err: en retrofit2.ServiceMethod $ Builder.parameterError (ServiceMethod.java:761) 08-20 23: 46: 51.004 3782-3782 / com.qkangaroo.app W / System.err: en retrofit2.ServiceMethod $ Builder.build (ServiceMethod.java:195) 08-20 23: 46: 51.004 3782-3782 / com.qkangaroo.app W / System .err: en retrofit2.Retrofit.loadServiceMethod (Retrofit.java:170) 08-20 23: 46: 51.005 3782-3782 / com.qkangaroo.app W / System.err: a t retrofit2.Retrofit $ 1.invoke (Retrofit.java:147) 08-20 23: 46: 51.005 3782-3782 / com.qkangaroo.app W / System.err: at $ Proxy0.updateCustomerDetail (Método nativo) 08-20 23 : 46: 51.005 3782-3782 / com.qkangaroo.app W / System.err: at com.qkangaroo.app.Fragments.MoreScreen.MoreFragment.updateProfile (MoreFragment.kt: 261) 08-20 23: 46: 51.006 3782- 3782 / com.qkangaroo.app W / System.err: at com.qkangaroo.app.Fragments.MoreScreen.MoreFragment $ clickListener $ 1.onClick (MoreFragment.kt: 191) 08-20 23: 46: 51.006 3782-3782 / com .qkangaroo.app W / System.err: en android.view.View.performClick (View.java:3517) 08-20 23: 46: 51.006 3782-3782 / com.qkangaroo.app W / System.err: en android .view.View $ PerformClick.run (View.java:14155) 08-20 23: 46: 51.006 3782-3782 / com.qkangaroo.app W / System.err: en android.os.Handler.handleCallback (Handler.java : 605) 08-20 23: 46: 51.007 3782-3782 / com.qkangaroo.app W / System.err: at android.os.Handler.dispatchMessage (Handler.java:92) 08-20 23: 46: 51.007 3782 -3782 / com.qkangaroo.app W / System.err: en android. os.Looper.loop (Looper.java:154) 08-20 23: 46: 51.007 3782-3782 / com.qkangaroo.app W / System.err: en android.app.ActivityThread.main (ActivityThread.java:4624) 08-20 23: 46: 51.008 3782-3782 / com.qkangaroo.app W / System.err: en java.lang.reflect.Method.invokeNative (Método nativo) 08-20 23: 46: 51.009 3782-3782 / com .qkangaroo.app W / System.err: en java.lang.reflect.Method.invoke (Method.java:511) 08-20 23: 46: 51.009 3782-3782 / com.qkangaroo.app W / System.err: en com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:809) 08-20 23: 46: 51.010 3782-3782 / com.qkangaroo.app W / System.err: en com.android.internal .os.ZygoteInit.main (ZygoteInit.java:576) 08-20 23: 46: 51.011 3782-3782 / com.qkangaroo.app W / System.err: en dalvik.system.NativeStart.main (Método nativo)

fragment.kt

var map:HashMap<String,RequestBody> = HashMap<String, RequestBody>() map.put("version",ApiClient.createRequestBody(AppConstants.API_VERSION)) map.put("auth_token", ApiClient.createRequestBody(customer.authToken!!)) map.put("customer_name",ApiClient.createRequestBody(profileName)) map.put("email", ApiClient.createRequestBody(profileEmail)) val apiInterface = ApiClient.client.create(ApiInterface::class.java) val updateCustomerCall: Call<UpdateCustomer> = apiInterface.updateCustomerDetail(map) updateCustomerCall.enqueue(object : Callback<UpdateCustomer> { override fun onResponse(call: Call<UpdateCustomer>?, response: Response<UpdateCustomer>?) { } override fun onFailure(call: Call<UpdateCustomer>?, t: Throwable?) { utilities!!.hideProgress(progress) } }) 

ApiClient.kt

 val MULTIPART_FORM_DATA = "multipart/form-data" fun createRequestBody(s: String): RequestBody { return RequestBody.create( MediaType.parse(MULTIPART_FORM_DATA), s) } 

ApiInterface, .kt

 @Multipart @POST("customer") fun updateCustomerDetail(@PartMap map: Map<String,RequestBody >): Call<UpdateCustomer> 

Archivo Gradle

 implementation "com.squareup.okhttp3:okhttp:3.8.1" implementation "com.squareup.okhttp3:logging-interceptor:3.8.1" implementation ("com.squareup.retrofit2:retrofit:2.3.0"){ exclude module: 'okhttp' } implementation "com.squareup.retrofit2:converter-gson:2.3.0" 

Agregar @JvmSuppressWildcards antes de RequestBody

 fun updateCustomerDetail(@PartMap map: Map<String, @JvmSuppressWildcards RequestBody >): Call<UpdateCustomer> 
  • ¿Cómo puedo hacer que cada punto final de descanso lea una cookie y use ese valor en okhttp Interceptor?