Приложение работает нормально, когда я запускаю из Android studio, но выходит из строя при установке из playstore

#android

Вопрос:

Я недавно опубликовал приложение, когда я установил его из playstore, приложение вылетает. Журнал, который я получил от Crashlytics, выглядит следующим образом:

 com.phoenix.gmspunch.Login$1.onResponse (Login.java:2)
retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall$1.lambda$onResponse$0 (DefaultCallAdapterFactory.java:1)
retrofit2.-$Lambda$DefaultCallAdapterFactory$ExecutorCallbackCall$1$hVGjmafRi6VitDIrPNdoFizVAdk.run (-.java:1)
android.os.Handler.handleCallback (Handler.java:938)
android.os.Handler.dispatchMessage (Handler.java:99)
android.os.Looper.loop (Looper.java:246)
android.app.ActivityThread.main (ActivityThread.java:8528)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:602)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1130)
 

Однако, когда я установил то же приложение из Android studio, оно работает нормально, без ошибок. Я дважды проверил свои Сервисы и серверную часть, все работает так, как ожидалось. Может кто-нибудь, пожалуйста, помочь мне, что я здесь упускаю? Спасибо.

Комментарии:

1. Возможно, при компиляции для выпуска вы скрываете модели, и это может испортиться, когда retrofit/gson попытается сопоставить ответ с моделью. подумайте о том, чтобы добавить что-то вроде-сохранить пакет классов.к.вашим моделям. ** { *; } в ваших правилах proguard-правила

2. Спасибо, да, я пропустил правила proguard.

Ответ №1:

Ошибка произошла из-за правил ProGuard. Как упоминалось в комментариях @Per.J Я не добавлял правила Прогарда. Добавлены следующие правила:

 -keepattributes Signature, InnerClasses, EnclosingMethod
-keepattributes RuntimeVisibleAnnotations, RuntimeVisibleParameterAnnotations
-keepattributes AnnotationDefault
-keepclassmembers,allowshrinking,allowobfuscation interface * {
    @retrofit2.http.* <methods>;
}
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
-dontwarn javax.annotation.**
-dontwarn kotlin.Unit
-dontwarn retrofit2.KotlinExtensions
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
-dontwarn org.codehaus.mojo.animal_sniffer.*
-dontwarn okhttp3.internal.platform.ConscryptPlatform
-dontwarn org.conscrypt.ConscryptHostnameVerifier

-if interface * { @retrofit2.http.* <methods>; }
-keep,allowobfuscation interface <1>
-keep,allowobfuscation,allowshrinking interface retrofit2.Call
-keep,allowobfuscation,allowshrinking class retrofit2.Response
-keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation