tengo una clase ContentProvider y se declara en AndroidMenifest.xml así:ClassNotFoundException para un ContentProvider
<provider android:name=".MediaSearchProvider"
android:authorities="org.iii.romulus.meridian.mediasearch">
<path-permission android:path="/search_suggest_query"
android:readPermission="android.permission.GLOBAL_SEARCH" />
</provider>
funciona bien en la mayoría de los dispositivos, pero el mercado me dice que algunos usuarios están sufriendo de error con ella. El seguimiento de la pila es:
java.lang.RuntimeException: Unable to get provider org.iii.romulus.meridian.MediaSearchProvider: java.lang.ClassNotFoundException: org.iii.romulus.meridian.MediaSearchProvider in loader dalvik.system.PathClassLoader[/mnt/asec/org.iii.romulus.meridian-1/pkg.apk]
at android.app.ActivityThread.installProvider(ActivityThread.java:4509)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4281)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4237)
at android.app.ActivityThread.access$3000(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2071)
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:878)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: org.iii.romulus.meridian.MediaSearchProvider in loader dalvik.system.PathClassLoader[/mnt/asec/org.iii.romulus.meridian-1/pkg.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.installProvider(ActivityThread.java:4494)
... 12 more
No tengo ni idea de lo que ocurre y no puedo reproducirlo en ninguno de mis teléfonos. También probé limpiar y construir, pero el informe aún aparece. ¿Alguien puede ayudar? ¡Gracias!
¿Está ejecutando la ofuscación de Proguard al crear un lanzamiento? Eso a veces puede causar este tipo de problema porque cambia los nombres de clase que luego no se resuelven en el tiempo de ejecución. Cualquier cosa que se declare en el manifiesto, o se haga referencia a ella utilizando la reflexión, debe excluirse de la ofuscación de proguard. –
Sí, estoy ejecutando Proguard. Lo comprobaré, muchas gracias. –
La tarjeta SD se retira o se monta en un PC http://stackoverflow.com/questions/4820554/android-unable-to-instantiate-activity-classnotfoundexception http://stackoverflow.com/ preguntas/5483947/android-intermitente-class-not-found-run-time-exception – Dante