Kotlin moshi android中出错,无法在kitkat设备上运行

Kotlin moshi android中出错,无法在kitkat设备上运行,kotlin,moshi,Kotlin,Moshi,该项目可以生成apk,可以从kitkat到oreo使用,但是在升级android studio并开始使用androidx之后,出现了以下问题。只有在启用minifyEnabled=true shrinkResources=true后,才会在kitkat中发生这种情况 java.lang.VerifyError: com/squareup/moshi/kotlin/reflect/KotlinJsonAdapter$IndexedParameterMap at com.squareup.m

该项目可以生成apk,可以从kitkat到oreo使用,但是在升级android studio并开始使用androidx之后,出现了以下问题。只有在启用minifyEnabled=true shrinkResources=true后,才会在kitkat中发生这种情况

java.lang.VerifyError: com/squareup/moshi/kotlin/reflect/KotlinJsonAdapter$IndexedParameterMap
    at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:111)
    at com.squareup.moshi.internal.NullSafeJsonAdapter.fromJson(NullSafeJsonAdapter.java:40)
    at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapter.fromJson(KotlinJsonAdapter.kt:84)
    at com.squareup.moshi.internal.NullSafeJsonAdapter.fromJson(NullSafeJsonAdapter.java:40)
    at com.squareup.moshi.JsonAdapter$2.fromJson(JsonAdapter.java:161)
    at com.squareup.moshi.JsonAdapter$3.fromJson(JsonAdapter.java:197)
    at com.squareup.moshi.JsonAdapter$1.fromJson(JsonAdapter.java:108)
    at retrofit2.converter.moshi.MoshiResponseBodyConverter.convert(MoshiResponseBodyConverter.java:45)
    at retrofit2.converter.moshi.MoshiResponseBodyConverter.convert(MoshiResponseBodyConverter.java:27)
    at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:223)
    at retrofit2.OkHttpCall.execute(OkHttpCall.java:186)
    at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(CallObservable.java:41)
    at io.reactivex.Observable.subscribe(Observable.java:12267)
    at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)
    at io.reactivex.Observable.subscribe(Observable.java:12267)
    at io.reactivex.internal.operators.observable.ObservableSingleSingle.subscribeActual(ObservableSingleSingle.java:35)
    at io.reactivex.Single.subscribe(Single.java:3603)
    at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
    at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
    at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
    at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
    at java.lang.Thread.run(Thread.java:864) 
这是我的程序规则

-dontwarn kotlin.**
-dontwarn kotlin.reflect.jvm.internal.**
-keep class kotlin.reflect.jvm.internal.** { *; }

-keep class kotlin.Metadata { *; }

-keepclassmembers class kotlin.Metadata {
    public <methods>;
}

-dontwarn org.jetbrains.annotations.**

-keep class kotlin.** { *; }
-dontwarn kotlin.**
-keepclassmembers class **$WhenMappings {
    <fields>;
}

-keep class com.squareup.moshi.kotlin.reflect.** { *; }
-keep class com.squareup.moshi.internel.** { *; }

-keepclassmembers class com.squareup.moshi.kotlin.reflect.** { *; }
-keepclassmembers class com.squareup.moshi.internel.** { *; }

-keepclassmembers class * {
    @com.squareup.moshi.FromJson <methods>;
    @com.squareup.moshi.ToJson <methods>;
}

-dontwarn javax.annotation.**

-keepclasseswithmembers class * {
    @com.squareup.moshi.* <methods>;
}

-keep class **JsonAdapter {
    <init>(...);
    <fields>;
}

-keep @com.squareup.moshi.JsonQualifier interface *

-keepclassmembers @com.squareup.moshi.JsonClass class * extends java.lang.Enum {
    <fields>;
    **[] values();
}

-keep public class kotlin.reflect.jvm.internal.impl.builtins.* { public *; }

-keep public class kotlin.reflect.jvm.internal.impl.** { public *; }
-dontwarn kotlin**
-dontwarn kotlin.reflect.jvm.internal**
-保持类kotlin.reflect.jvm.internal.*{*;}
-保持类kotlin.Metadata{*;}
-keepclassmembers类kotlin.Metadata{
公众;
}
-dontwarn org.jetbrains.annotations**
-保持类kotlin.*{*;}
-唐特旺·科特林**
-keepclassmembers类**$WhenMappings{
;
}
-保持类com.squareup.moshi.kotlin.reflect.*{*;}
-保持类com.squareup.moshi.internel.*{*;}
-keepclassmembers类com.squareup.moshi.kotlin.reflect.*{*;}
-keepclassmembers类com.squareup.moshi.internel.*{*;}
-keepclassmembers类*{
@com.squareup.moshi.FromJson;
@com.squareup.moshi.ToJson;
}
-dontwarn javax.annotation**
-keepclassswithmembers类*{
@com.squareup.moshi.*;
}
-保持类**JsonAdapter{
(...);
;
}
-keep@com.squareup.moshi.JsonQualifier接口*
-keepclassmembers@com.squareup.moshi.JsonClass*扩展了java.lang.Enum{
;
**[]值();
}
-保留公共类kotlin.reflect.jvm.internal.impl.builtins.*{public*;}
-保持公共类kotlin.reflect.jvm.internal.impl.*{public*;}

我尝试过其他类似的参考资料,但没有找到答案。请帮我解决这个问题。

这似乎是Kotlin的问题,作为一种解决方法,使用
Moshi 1.6.0
Proguard
而不是
R8
->
android。enableR8=false