我们在Google Play控制台上看到很多Android崩溃事件,但我们无法复制它们。它似乎只是少数设备,但没有特定的操作系统版本或制造商类型,某些设备在一天内注册了15-20次崩溃,这使我们相信它不是真正的应用程序崩溃,而是某事(可能是一个扩展)触发崩溃报告,这不会影响游戏的实际运行。还有其他人经历过这个吗?这是我们的报告所说的内容。
Yesterday, 8:18 PM on app version 2001012
Samsung Galaxy S7 Edge (hero2qltetmo), 4096MB RAM, Android 7.0
Report 1
java.lang.RuntimeException:
at android.app.ActivityThread.handleReceiver (ActivityThread.java:3324)
at android.app.ActivityThread.-wrap20 (ActivityThread.java)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1727)
at android.os.Handler.dispatchMessage (Handler.java:102)
at android.os.Looper.loop (Looper.java:154)
at android.app.ActivityThread.main (ActivityThread.java:6642)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1468)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1358)
Caused by: java.lang.ClassNotFoundException:
at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass (ClassLoader.java:380)
at java.lang.ClassLoader.loadClass (ClassLoader.java:312)
at android.app.ActivityThread.handleReceiver (ActivityThread.java:3319)
答案 0 :(得分:0)
Android是开源的,所以最好去看看源代码。 一个google search用于“android ActivityThread.java”快速finds the source code(对于至少一个版本的OS)。
忽略行号,我们知道handleReceiver()
方法中的异常发生loadClass()
。浏览器中的 find 会找到line 3181 (right now)。
这似乎是从intent中找到的类名加载组件:
String component = data.intent.getComponent().getClassName();
...
receiver = (BroadcastReceiver)cl.loadClass(component).newInstance();
因此,如果是我,我会仔细检查您的清单中的BroadcastReceivers,以确保它们都已正确配置。