【问题标题】:App is working fine when i run from Android studio but crashing when installed from playstore当我从 Android Studio 运行时,应用程序运行良好,但从 Playstore 安装时崩溃
【发布时间】:2021-09-07 12:36:35
【问题描述】:

我最近发布了一个应用程序,当我从 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 安装相同的应用程序时,它运行良好,没有错误。我仔细检查了我的服务和后端,它按预期工作。有人可以帮我我在这里想念什么吗?谢谢。

【问题讨论】:

  • 可能是当您编译发布时您会模糊模型,并且当改造/gson 尝试将答案映射到模型时可能会搞砸。考虑添加类似 -keep class package.to.yourmodels.** { *; } 在你的 proguard 规则中
  • 谢谢,是的,我错过了 proguard 规则。

标签: android


【解决方案1】:

错误是由于 ProGuard 规则造成的。 正如@Per.J 在 cmets 中提到的,我没有添加 Proguard 规则。 添加了以下规则:

-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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    • 2016-05-26
    • 2020-09-09
    • 1970-01-01
    • 2013-07-27
    相关资源
    最近更新 更多