Yesterday I released an update for a paid app that I have on Google Play Store.
After a few hours, I got a 1-star review from a user who complained that the app was crashing, so I went to investigate it in the Android Vitals section of the Developer Console. At first, I didn't see any signs of crashes or ANR's, but when I changed the filter "Installed from Play" to "Installed from anywhere", I could see that that app had indeed been crashing a lot for this one single user.
I'm a bit baffled and curious what this means - if he really got his hands on the app from somewhere else, how come he is able to leave a review on Google Play? And how come he was even able to update the app?
Could "Installed from anywhere" include other things, like a user who has uninstalled the app since the crash? Or a user who has backed up the app using something like Titanium and then restored it from the backup?
I should probably mention also that the actual crash happened in the Google Licence Verification Library, which makes the "Installed from anywhere" part even more suspicious. Here's the stack trace (unfortunately I forgot to upload mapping.txt
to deobfuscate the method names, and have already made modifications to the source code).
Google Pixel XL (marlin), Android 9
java.lang.NoClassDefFoundError:
at com.google.android.vending.licensing.l.d (Unknown Source:29)
at com.google.android.vending.licensing.l.a (Unknown Source:25)
at com.google.android.vending.licensing.f.a (Unknown Source:2)
at com.google.android.vending.licensing.f.a (Unknown Source:209)
at com.google.android.vending.licensing.d$a$2.run (Unknown Source:52)
at android.os.Handler.handleCallback (Handler.java:873)
at android.os.Handler.dispatchMessage (Handler.java:99)
at android.os.Looper.loop (Looper.java:193)
at android.os.HandlerThread.run (HandlerThread.java:65)
Caused by: java.lang.ClassNotFoundException:
at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass (ClassLoader.java:379)
at java.lang.ClassLoader.loadClass (ClassLoader.java:312)
At first it might seem lika a multidex problem, but more than 50 others have already updated the app, and still there is only a crash report from this one single user. If it were indeed a multidex problem, wouldn't it affect most users (at least the ones on the same Android version)?