2

I've added an update to one of my apps and started to receive crashes.

I've added mapping.txt to Play Console to get the deobfuscated stack trace, but it didn't make any influence. I still receive the same crashes that are obfuscated, and the Play Console shows me a message, like Deobfuscation file, was uploaded after a crash happened.

But there were multiple crashes since I added mapping.txt. Moreover, I've fixed few of them by myself and released a new app version, where added mapping.txt immediately after release, but the console still showing obfuscated traces.

Did anyone run out on the same problem? What is the reason of this strange behavior and how can I fix that. Thanks in advance!

Here is an example of the stack trace:

    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$4.a (MainActivity.java:4)
  at notchremover.smallapps.com.notchremover.ui.ui.widgets.heightscrollbar.SeekBarWidgetKt$1.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)
Dmitry Smolyaninov
  • 2,159
  • 1
  • 18
  • 32
  • That stack trace doesn't look obfuscated. What makes you think it is? It has all the method names and line numbers. – Nick Fortescue Aug 09 '18 at 07:21
  • Thanks for the response. It is. Look at the top MainActivity.d & MainActivityPresenter.b etc Actually, I've found a solution how to deobfuscate that with the help of util proguardgui. I'll post this as an answer, but there is still a question about this strange Play Console behavior. – Dmitry Smolyaninov Aug 09 '18 at 08:26

1 Answers1

0

Despite I still don't have an answer, why Play Console behaves like this, the main purpose of this question was to deobfuscate my stack trace and fix the crashes.

So as a workaround, I had to use proguardgui which is the standard utility of Android SDK. To learn how to use it, I followed this guide, which is pretty clear and straightforward, so I don't need to rewrite its nuances here.

Dmitry Smolyaninov
  • 2,159
  • 1
  • 18
  • 32