Play 控制台反混淆不起作用
Play Console deobfuscation deosn't work
我为我的其中一个应用程序添加了更新,但开始出现崩溃问题。
我已将 mapping.txt 添加到 Play 控制台以获取去混淆的堆栈跟踪,但它没有产生任何影响。我仍然收到经过混淆处理的相同崩溃,并且 Play 控制台向我显示一条消息,例如崩溃发生后上传的反混淆文件。
但是自从我添加 mapping.txt 之后出现了多次崩溃。而且,我已经自己修复了其中的一些问题并发布了一个新的应用程序版本,在发布后立即添加了mapping.txt,但控制台仍然显示混淆的痕迹。
有人 运行 遇到过同样的问题吗?这种奇怪行为的原因是什么,我该如何解决。提前致谢!
这是堆栈跟踪的示例:
java.lang.NullPointerException:
at notchremover.smallapps.com.notchremover.ui.ui.activities.MainActivity.d (MainActivity.java:2)
at notchremover.smallapps.com.notchremover.ui.ui.activities.MainActivityPresenter.b (MainActivityPresenter.java:16)
at notchremover.smallapps.com.notchremover.ui.ui.activities.MainActivity.a (MainActivity.java:6)
at notchremover.smallapps.com.notchremover.ui.ui.activities.MainActivity$$Lambda.a (MainActivity.java:4)
at notchremover.smallapps.com.notchremover.ui.ui.widgets.heightscrollbar.SeekBarWidgetKt.onProgressChanged (SeekBarWidgetKt.java:59)
at android.widget.SeekBar.onProgressRefresh (SeekBar.java:95)
at android.widget.ProgressBar.doRefreshProgress (ProgressBar.java:1298)
at android.widget.ProgressBar.refreshProgress (ProgressBar.java:1353)
at android.widget.ProgressBar.setProgressInternal (ProgressBar.java:1418)
at android.widget.AbsSeekBar.trackTouchEvent (AbsSeekBar.java:869)
at android.widget.AbsSeekBar.startDrag (AbsSeekBar.java:826)
at android.widget.AbsSeekBar.onTouchEvent (AbsSeekBar.java:783)
at android.view.View.dispatchTouchEvent (View.java:11789)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at com.android.internal.policy.DecorView.superDispatchTouchEvent (DecorView.java:451)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent (PhoneWindow.java:1829)
at android.app.Activity.dispatchTouchEvent (Activity.java:3371)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent (WindowCallbackWrapper.java:2)
at com.android.internal.policy.DecorView.dispatchTouchEvent (DecorView.java:413)
at android.view.View.dispatchPointerEvent (View.java:12030)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent (ViewRootImpl.java:4866)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess (ViewRootImpl.java:4677)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4208)
at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:4261)
at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4227)
at android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:4354)
at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:4235)
at android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:4411)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4208)
at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:4261)
at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4227)
at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:4235)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4208)
at android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.java:6775)
at android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl.java:6747)
at android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.java:6708)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent (ViewRootImpl.java:6883)
at android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java:240)
at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents (InputEventReceiver.java)
at android.view.InputEventReceiver.consumeBatchedInputEvents (InputEventReceiver.java:208)
at android.view.ViewRootImpl.doConsumeBatchedInput (ViewRootImpl.java:6851)
at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run (ViewRootImpl.java:6906)
at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1026)
at android.view.Choreographer.doCallbacks (Choreographer.java:838)
at android.view.Choreographer.doFrame (Choreographer.java:763)
at android.view.Choreographer$FrameHandler.handleMessage (Choreographer.java:941)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:171)
at android.app.ActivityThread.main (ActivityThread.java:6633)
at java.lang.reflect.Method.invoke (Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:823)
尽管我仍然没有答案,为什么 Play 控制台会这样,这个问题的主要目的是对我的堆栈跟踪进行去混淆处理并修复崩溃。
因此,作为解决方法,我不得不使用 proguardgui,这是 Android SDK 的标准实用程序。
为了学习如何使用它,我遵循了 this guide,它非常清晰明了,所以我不需要在这里重写它的细微差别。
我为我的其中一个应用程序添加了更新,但开始出现崩溃问题。
我已将 mapping.txt 添加到 Play 控制台以获取去混淆的堆栈跟踪,但它没有产生任何影响。我仍然收到经过混淆处理的相同崩溃,并且 Play 控制台向我显示一条消息,例如崩溃发生后上传的反混淆文件。
但是自从我添加 mapping.txt 之后出现了多次崩溃。而且,我已经自己修复了其中的一些问题并发布了一个新的应用程序版本,在发布后立即添加了mapping.txt,但控制台仍然显示混淆的痕迹。
有人 运行 遇到过同样的问题吗?这种奇怪行为的原因是什么,我该如何解决。提前致谢!
这是堆栈跟踪的示例:
java.lang.NullPointerException:
at notchremover.smallapps.com.notchremover.ui.ui.activities.MainActivity.d (MainActivity.java:2)
at notchremover.smallapps.com.notchremover.ui.ui.activities.MainActivityPresenter.b (MainActivityPresenter.java:16)
at notchremover.smallapps.com.notchremover.ui.ui.activities.MainActivity.a (MainActivity.java:6)
at notchremover.smallapps.com.notchremover.ui.ui.activities.MainActivity$$Lambda.a (MainActivity.java:4)
at notchremover.smallapps.com.notchremover.ui.ui.widgets.heightscrollbar.SeekBarWidgetKt.onProgressChanged (SeekBarWidgetKt.java:59)
at android.widget.SeekBar.onProgressRefresh (SeekBar.java:95)
at android.widget.ProgressBar.doRefreshProgress (ProgressBar.java:1298)
at android.widget.ProgressBar.refreshProgress (ProgressBar.java:1353)
at android.widget.ProgressBar.setProgressInternal (ProgressBar.java:1418)
at android.widget.AbsSeekBar.trackTouchEvent (AbsSeekBar.java:869)
at android.widget.AbsSeekBar.startDrag (AbsSeekBar.java:826)
at android.widget.AbsSeekBar.onTouchEvent (AbsSeekBar.java:783)
at android.view.View.dispatchTouchEvent (View.java:11789)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2970)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2657)
at com.android.internal.policy.DecorView.superDispatchTouchEvent (DecorView.java:451)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent (PhoneWindow.java:1829)
at android.app.Activity.dispatchTouchEvent (Activity.java:3371)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent (WindowCallbackWrapper.java:2)
at com.android.internal.policy.DecorView.dispatchTouchEvent (DecorView.java:413)
at android.view.View.dispatchPointerEvent (View.java:12030)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent (ViewRootImpl.java:4866)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess (ViewRootImpl.java:4677)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4208)
at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:4261)
at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4227)
at android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:4354)
at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:4235)
at android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:4411)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4208)
at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:4261)
at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4227)
at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:4235)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4208)
at android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.java:6775)
at android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl.java:6747)
at android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.java:6708)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent (ViewRootImpl.java:6883)
at android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java:240)
at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents (InputEventReceiver.java)
at android.view.InputEventReceiver.consumeBatchedInputEvents (InputEventReceiver.java:208)
at android.view.ViewRootImpl.doConsumeBatchedInput (ViewRootImpl.java:6851)
at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run (ViewRootImpl.java:6906)
at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1026)
at android.view.Choreographer.doCallbacks (Choreographer.java:838)
at android.view.Choreographer.doFrame (Choreographer.java:763)
at android.view.Choreographer$FrameHandler.handleMessage (Choreographer.java:941)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:171)
at android.app.ActivityThread.main (ActivityThread.java:6633)
at java.lang.reflect.Method.invoke (Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:823)
尽管我仍然没有答案,为什么 Play 控制台会这样,这个问题的主要目的是对我的堆栈跟踪进行去混淆处理并修复崩溃。
因此,作为解决方法,我不得不使用 proguardgui,这是 Android SDK 的标准实用程序。 为了学习如何使用它,我遵循了 this guide,它非常清晰明了,所以我不需要在这里重写它的细微差别。