当minifyEnabled为true时,Android应用程序崩溃 [英] Android app crashes when minifyEnabled is true

查看:1489
本文介绍了当minifyEnabled为true时,Android应用程序崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用多模块应用程序,并且installed模块的build.gradle中的minifyEnabled true时,该应用程序崩溃.

I am using a multi-module app and the app crashes when minifyEnabled true in the installed module's build.gradle.

以下是我从Play控制台检索到的模糊的堆栈跟踪.

Following is the deobfuscated stacktrace I retrieved from play console.

 FATAL EXCEPTION: ControllerMessenger
Process: com.packagename, PID: 16978
java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object java.util.List.get(int)' on a null object reference
    at com.packagename.login.Utils.AuthenticationActions.saveCredentials(AuthenticationActions.java)
    at com.packagename.login.LoginActivity$1$1.onCompleted(LoginActivity.java)
    at com.packagename.login.LoginActivity$1$1.onCompleted(LoginActivity.java)
    at com.koushikdutta.async.future.SimpleFuture.handleCallbackUnlocked(SimpleFuture.java)
    at com.koushikdutta.async.future.SimpleFuture.setComplete(SimpleFuture.java)
    at com.koushikdutta.async.future.SimpleFuture.setComplete(SimpleFuture.java)
    at com.koushikdutta.ion.IonRequestBuilder$EmitterTransform$1.onCompleted(IonRequestBuilder.java)
    at com.koushikdutta.async.future.SimpleFuture.handleCallbackUnlocked(SimpleFuture.java)
    at com.koushikdutta.async.future.SimpleFuture.setComplete(SimpleFuture.java)
    at com.koushikdutta.async.future.SimpleFuture.setComplete(SimpleFuture.java)
    at com.koushikdutta.ion.IonRequestBuilder$1.run(IonRequestBuilder.java)
    at com.koushikdutta.async.AsyncServer$RunnableWrapper.run(AsyncServer.java)
    at android.os.Handler.handleCallback(Handler.java:746)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at androidx.test.espresso.base.Interrogator.a(Interrogator.java:19)
    at androidx.test.espresso.base.UiControllerImpl.a(UiControllerImpl.java:166)
    at androidx.test.espresso.base.UiControllerImpl.a(UiControllerImpl.java:158)
    at androidx.test.espresso.base.UiControllerImpl.a(UiControllerImpl.java:34)
    at androidx.test.espresso.action.MotionEvents.a(MotionEvents.java:77)
    at androidx.test.espresso.action.MotionEvents.a(MotionEvents.java:52)
    at androidx.test.espresso.action.Tap.c(Tap.java:8)
    at androidx.test.espresso.action.Tap.b(Tap.java:18)
    at androidx.test.espresso.action.Tap$1.a(Tap.java:3)
    at androidx.test.espresso.action.GeneralClickAction.perform(GeneralClickAction.java:22)
    at androidx.test.espresso.ViewInteraction$SingleExecutionViewAction.perform(ViewInteraction.java:9)
    at androidx.test.espresso.ViewInteraction.a(ViewInteraction.java:79)
    at androidx.test.espresso.ViewInteraction.a(ViewInteraction.java:96)
    at androidx.test.espresso.ViewInteraction$1.call(ViewInteraction.java:3)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at android.os.Handler.handleCallback(Handler.java:746)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5459)
    at java.lang.reflect.Method.invoke(Method.java)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

我无法理解这段代码与'java.lang.Object java.util.List.get(int)'

I am unable to understand what does this code correspond to 'java.lang.Object java.util.List.get(int)'

我正在使用多个外部库,其中之一是 ion koush .

I am using multiple external libraries, one of which is ion koush.

我尝试将其添加到项目中的everguard-rules.pro文件中 -keep class com.koushikdutta.** { *;}.但这并没有取得任何成功.

I have tried adding this to ever proguard-rules.pro file in my project -keep class com.koushikdutta.** { *;}. But this didn't yield any success.

推荐答案

当您的应用将json转换为POJO且具有最小化启用时,就会发生这种情况.最小化那些使转换不可能的POJO的更改(它将编译,但是您所有的POJO属性将为空).

This happens when your app transform json to POJOs and you have minify enable. Minify change those POJOs making the transformation impossible (it will compile, but all your POJOs propierties will be null).

保留那些将-keep class com.packagename.<path to pojos> {*; }添加到您的proguard-rules文件中的POJO.

Keep those POJOs adding -keep class com.packagename.<path to pojos> {*; } to your proguard-rules file.

这篇关于当minifyEnabled为true时,Android应用程序崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆