我正在尝试找出如何使用 R8 保留原始行号。
使用当前的AndroidStudio制作应用程序并使用R8对其进行混淆,甚至上传mapping.txt
将文件上传到 Google Play Console 后,用户的堆栈跟踪在某些情况下是无用的,因为崩溃的行与真实的非混淆文件中的行不同。
这是一个示例,我的类没有 3000 行,但在第 3052 行报告了错误(com.mypackage.activities.ManagerActivity.onCreate (ManagerActivity.java:3052)
):
Caused by: java.lang.NullPointerException:
at com.mypackage.activities.ManagerActivity.onCreate (ManagerActivity.java:3052)
at android.app.Activity.performCreate (Activity.java:7136)
at android.app.Activity.performCreate (Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2990)
at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3148)
at android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1861)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:193)
at android.app.ActivityThread.main (ActivityThread.java:6819)
at java.lang.reflect.Method.invoke (Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:497)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:912)
有没有办法用R8和AndroidStudio获取错误的真实行号?请记住,此代码已经使用mapping.txt 文件进行了反混淆处理
为了正确重新跟踪混淆的堆栈跟踪,配置文件中需要包含以下内容
-keepattributes LineNumberTable,SourceFile
See https://developer.android.com/studio/build/shrink-code#decode-stack-trace获取教育部信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)