ClassNotFoundException错误报告升级Android应用程序时

我已经看到了很多关于ClassNotFoundException和Android的线程,但是我还没有find我认为是我所经历的原因。

我有一个应用程序 – 数据柜台小工具 – 在Android电子市场。 它有25万次下载,每次我发布一个新版本时,我都会在Android Market的开发者控制台上得到一些关于ClassNotFoundException的错误报告(1-5)。

29份报告来自未指定的(“其他”)设备,而另外两份来自Nexus One。 有两个用户消息:“启动时崩溃”和“更新安装期间”。

所有的报告都是关于我的接收器(扩展BroadcastReceiver)。 其中一个接收器经常被触发,因为它是启动读取和存储Android设备数据使用的服务的接收器。 我有这种感觉,可能是为接收器设置了一个警报(使用AlarmManager),然后用户/设备升级应用程序,并找不到类 – 或者因为它在一个物理不同的包,或者它发生设备进行交换的时刻。 情况会是这样吗? 如果是的话,有没有办法解决这个问题呢? 我不能明白为什么几乎所有的报告(比如说90%)都是在新版本发布之后的相同或者接下来的几天内发布的。

我的一个接收者的堆栈跟踪(其他人给出了除了类名之外的相同堆栈跟踪):

java.lang.RuntimeException: Unable to instantiate receiver com.roysolberg.android.datacounter.receivers.CounterReceiver: java.lang.ClassNotFoundException: com.roysolberg.android.datacounter.receivers.CounterReceiver in loader dalvik.system.PathClassLoader[/data/app/com.roysolberg.android.datacounter-1.apk] at android.app.ActivityThread.handleReceiver(ActivityThread.java:2789) at android.app.ActivityThread.access$3200(ActivityThread.java:125) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2083) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:123) at android.app.ActivityThread.main(ActivityThread.java:4627) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.ClassNotFoundException: com.roysolberg.android.datacounter.receivers.CounterReceiver in loader dalvik.system.PathClassLoader[/data/app/com.roysolberg.android.datacounter-1.apk] at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) at java.lang.ClassLoader.loadClass(ClassLoader.java:573) at java.lang.ClassLoader.loadClass(ClassLoader.java:532) at android.app.ActivityThread.handleReceiver(ActivityThread.java:2780) ... 10 more 

Solutions Collecting From Web of "ClassNotFoundException错误报告升级Android应用程序时"

经过一年左右的时间更新我的应用程序,我现在明白这个问题,似乎没有解决scheme:

我的应用程序(取决于用户设置)使用警报pipe理器定期运行特定的任务。 当应用程序更新时,短时间内不可用,并且如果警报触发,则会导致该特定问题! 然后,应用程序再次可用,一切正常。

所以我每次更新我的应用程序时都会定期收到这份FC报告,并且没有什么可以做的。

现在在FC报告中,我有时会看到'更新时崩溃'…确认。

另外关于SD的移动,我明确地阻止了它的清单文件,但市场上的一些应用程序允许强制移动应用程序。 所以,如果你使用小工具或闹钟,你肯定也可以收到这样的报告!

假设,这个问题非常类似于Android应用无法在PathClassLoader中的某些手机上加载 。