如何使用R8在堆栈跟踪中保留原始行号



我想知道如何用R8保持原始行号。

用当前的AndroidStudio做一个应用程序,并用R8对其进行模糊处理,甚至将mapping.txt文件上传到Google Play控制台,用户的堆栈跟踪在某些情况下是无用的,因为崩溃的行数与真正的非模糊文件中的行数不同。

这是一个示例,我的类没有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

请参阅https://developer.android.com/studio/build/shrink-code#decode-moe信息的堆栈跟踪。

最新更新