He visto bastantes hilos sobre ClassNotFoundException y Android, pero todavía tengo que encontrar lo que creo que es el motivo de lo que experimento.Informes de error de ClassNotFoundException al actualizar la aplicación de Android
Tengo una aplicación - Data counter widget - en Android Market. Tiene más de 250k de descargas, y cada vez que lanzo una nueva versión recibo un puñado (1-5) de informes de error sobre una ClassNotFoundException en mi consola de desarrollador en Android Market.
29 informes son de dispositivos no especificados ('OTHER'), mientras que dos son del Nexus One. Hay dos mensajes de usuario: 'Fallos en el arranque' y 'Durante la instalación de la actualización'.
Todos los informes son sobre mis receptores (extiende BroadcastReceiver). Uno de los receptores se activa con relativa frecuencia, ya que es el que inicia el servicio que lee y almacena el uso de datos del dispositivo Android. Tengo la sensación de que puede ser que se configure una alarma (usando AlarmManager) para el receptor y luego el usuario/dispositivo actualice la aplicación y no se encuentre la clase, ya sea porque está en un paquete físico diferente, o porque sucede momento en que el dispositivo realiza el intercambio. ¿Podría este ser el caso? Y si es así, ¿hay alguna forma de evitarlo? De lo contrario, no puedo ver por qué casi todos los informes (digamos el 90%) se publican el mismo o el siguiente par de días después de una nueva versión.
El StackTrace para uno de mis receptores (los otros dan el mismo StackTrace que no sea el nombre de la clase):
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
intente esto http://groups.google.com/group/android-developers/browse_thread/thread/242effaaac01463a – Akram