我正在努力弄清楚如何在R8中保留原始行号。
使用当前的AndroidStudio进行应用程序并将其与R8混淆,甚至将mapping.txt文件上传到Google控制台,用户的堆栈跟踪在某些情况下是无用的,因为崩溃的线条与真正的非混淆文件中的不同。
这是一个示例,我的类没有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文件进行了处理。
发布于 2020-11-20 08:01:28
为了正确地重新跟踪被混淆的堆栈跟踪,需要在配置文件中包含以下内容
-keepattributes LineNumberTable,SourceFile有关moe信息,请参见https://developer.android.com/studio/build/shrink-code#decode-stack-trace。
https://stackoverflow.com/questions/64385769
复制相似问题