Отчеты об ошибках ClassNotFoundException при обновлении приложения для Android

Я видел немало тем, посвященных ClassNotFoundException и Android, но мне еще предстоит найти то, что, по моему мнению, является причиной того, что я испытываю.

У меня есть приложение - Виджет счетчика данных - на Android Market. У него более 250 тысяч загрузок, и каждый раз, когда я выпускаю новую версию, я получаю несколько (1-5) отчетов об ошибках об исключении ClassNotFoundException на консоль разработчика в Android Market.

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

8
задан Roy Solberg 24 April 2011 в 08:32
поделиться