Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android应用程序在模糊处理后崩溃,并且在调试构建中接收到模糊日志_Android_Crash_Proguard_Obfuscation - Fatal编程技术网

Android应用程序在模糊处理后崩溃,并且在调试构建中接收到模糊日志

Android应用程序在模糊处理后崩溃,并且在调试构建中接收到模糊日志,android,crash,proguard,obfuscation,Android,Crash,Proguard,Obfuscation,我正在开发一款Android应用程序,它正处于SIT测试阶段。我的想法是向测试团队发布一个调试模糊构建。为此,我在build.gradle中添加了这段代码 buildTypes { debug { applicationIdSuffix ".debug" debuggable true shrinkResources true minifyEnabled true

我正在开发一款Android应用程序,它正处于SIT测试阶段。我的想法是向测试团队发布一个调试模糊构建。为此,我在build.gradle中添加了这段代码

buildTypes {
        debug {
            applicationIdSuffix ".debug"
            debuggable true
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
        }
}
在这之后,我的apk文件减少了,我对此很满意。但当我运行应用程序并拨打服务电话时,应用程序崩溃

更坏的消息是,我无法读取任何日志,因为日志是这种格式的-

java.lang.IllegalArgumentException: Parameter specified as non-null is null: method f.f.b.i.b, parameter errorType
        at .a.f$a.<init>(Unknown Source:2)
        at .a.h.c.a(:38)
        at j.l.run(:83)
        at android.os.Handler.handleCallback(Handler.java:789)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6944)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
java.lang.IllegalArgumentException:指定为非null的参数为null:方法f.f.b.i.b,参数errorType
a.f$a(未知来源:2)
at.a.h.c.a(:38)
在j.l.运行时(:83)
位于android.os.Handler.handleCallback(Handler.java:789)
位于android.os.Handler.dispatchMessage(Handler.java:98)
位于android.os.Looper.loop(Looper.java:164)
位于android.app.ActivityThread.main(ActivityThread.java:6944)
位于java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.Zygote$MethodAndArgsCaller.run上(Zygote.java:327)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
我注意到的是,当我在proguard规则中放入-dontobfuscate命令时,它工作正常,否则会崩溃。我甚至能够发现我的mapping.txt文件,但我不知道如何解码该文件并读取日志


我在这里做错了什么吗?

这可能与您使用改装和Gson进行序列化有关。 尝试将此行添加到Proguard配置中

-keepclassmembers,allowobfuscation class * {
  @com.google.gson.annotations.SerializedName <fields>;
}
-keepclassmembers,AllowFusion类*{
@com.google.gson.annotations.SerializedName;
}

您是否编写了我编写和删除的proguard规则?在任何一种情况下,我都看到它正在崩溃,只有在我编写-dontobfuscate时它才不会崩溃。