Google Play 管理中心的 ANR 和崩溃部分最近已更新,可显示更多 ANR 和崩溃(自动从选择加入的用户收集)。
我在各种 Android 版本和设备上发现了很多奇怪的新崩溃:
1) 最常见的(每周出现数千次),没有任何类名的 ClassNotFoundException:
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) 最常见的(数百个),似乎与 admob 有关的 RuntimeException (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:
堆栈跟踪非常长,包含很多方法,行号始终为 0
该应用程序使用 Proguard
lib folder architecture
3) 一堆具有相同类型跟踪的其他异常(很多方法的行号为 0)
我的问题是:
- 您是否也遇到过类似的报道?
- 这些报告真的相关吗?我的意思是,我应该收到更直接的用户反馈。有没有可能,它们是“无声”的崩溃?
- 有任何已知问题/修复吗?
我通过将这些行添加到我的 Proguard 文件中设法减少了它的出现:
-keep class android.app.Application
-keep class <<MyPackage>>.MyApplication
可以缩短为:
-keep class * extends android.app.Application
根据android源代码我想它解决了第一个问题。
我还将所有库更新到了最新版本(Google Play Services 11.0.2,支持库 25.4.0),应该修复了第二个版本。
更新:它并不能完全解决问题。我遇到的情况要少得多,但仍然有一些。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)