Search code examples
androiddebug-symbolsdeobfuscationgoogle-play-console

Deobfuscate production Android errors via uploading proguard rules mapping file to google play console


Suddenly my released app crashed while opening just after installing the app from play-store. But problem is that when I am running the code in Android Studio in debug mode app does not crash.

When I looked for crash error on google play console I saw some obfuscated code not easy to guess from where error was coming.

java.lang.NullPointerException: 
  at com.wl.model.a.b (Unknown Source)
  at com.wl.model.a.a (Unknown Source)
  at com.wl.model.a$1.a (Unknown Source)
  at b.w$a.b (Unknown Source)
  at b.a.b.run (Unknown Source)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1113)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:588)
  at java.lang.Thread.run (Thread.java:818)

From error I know there is some null pointer exception but could not trace its origin.

Google play console says upload de-obfuscation file to de-obfuscate the error code.

Now my problem is that I am not able to locate the de-obfuscation file in my project source folder.

I tried uploading the pro-guard rules file but google play console rejects it.

Please provide me the path or place where I can look for de-obfuscation file (where it is usually present).


Solution

  • After you assembled your release apk the file is here:

    ./gradlew clean assembleFLAVORRelease
    
    app/build/outputs/mapping/FLAVOR/release/mapping.txt
    

    Keep in mind, that you probably should check your proguard rules:

    -keepattributes SourceFile,LineNumberTable
    

    Without this attribute you won't see the line and source file name in the play console.