问题
The ANRs & crashes section of the Google Play Console has been recently updated to display more ANRs & crashes (automatically collected from users that have opted in).
I found a lot of strange new crashes, on various Android versions and devices:
1) The most common (thousands of occurrences a week), a ClassNotFoundException without any class name:
java.lang.RuntimeException:
at android.app.LoadedApk.makeApplication(LoadedApk.java:509)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4657)
at android.app.ActivityThread.access$1400(ActivityThread.java:159)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1376)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Method.java:0)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
at dalvik.system.NativeStart.main(NativeStart.java:0)
Caused by: java.lang.ClassNotFoundException:
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:64)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
at android.app.Instrumentation.newApplication(Instrumentation.java:992)
at android.app.LoadedApk.makeApplication(LoadedApk.java:504)
2) The most common (hundreds), a RuntimeException that seems related to admob (com.google.android.gms.ads.internal.*):
java.lang.RuntimeException:
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2429)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1342)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5333)
at java.lang.reflect.Method.invokeNative(Method.java:0)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644)
at dalvik.system.NativeStart.main(NativeStart.java:0)
Caused by: java.lang.IllegalStateException:
at com.google.android.gms.ads.internal.zzj.a(zzj.java:322)
at com.google.android.gms.ads.internal.client.ak.onTransact(ak.java:98)
at android.os.Binder.transact(Binder.java:361)
at com.google.android.gms.internal.zzet$zza$zza.zza(zzet.java:0)
at <OR>.zza(zzet.java:0)
at <OR>.zza(zzet.java:0)
...
at <OR>.zza(zzet.java:0)
...
Notes:
the stack trace is very long and contains a lot of methods with , line number is always 0
the app uses Proguard
lib folder architecture
3) a bunch of other exceptions with same kind of traces (a lot of methods with and line number 0)
My questions are:
- Do you experience similar reports?
- Are these reports really relevant? I mean, I should receive more direct user feedbacks. Is it possible, they are "silent" crashes?
- Are there any know issues / fixes?
回答1:
I managed to decrease occurrences of it by adding these lines to my Proguard file:
-keep class android.app.Application
-keep class <<MyPackage>>.MyApplication
that may be shortened to:
-keep class * extends android.app.Application
According to android source code I suppose it fixed the first issue.
I also updated all my libs to the last versions (Google Play Services 11.0.2, support lib 25.4.0) that should have fixed the second one.
UPDATE: it doesn't fix the issue completely. I got far less occurrences but there are still some.
回答2:
First bug look like there is a problem with multiple dex. Make sure you have correct implementation for it. Or if you have .so files in libs folder also make sure they covers all cpu architectures. If still occurs check your proguard file
Second bug is all about Google play service versions. Your app requires higher play service version and device doesn't have this. It's needed to be updated or make sure it's have play services also. You can search web about Google Play Service Availability for more info.
Good luck
Emre
来源:https://stackoverflow.com/questions/44145786/thousands-of-strange-crashes-in-new-google-play-console-version