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