2012-05-01 28 views
24

Así que me sale este error de vez en cuando. Está en la aplicación que se inicia desde el botón Ejecutar en Eclipse. esto ocurre una vez cada 4-5 veces. Cualquiera tiene una idea de lo que está pasando.java.lang.RuntimeException: no se puede instanciar la aplicación android.app.Application: java.lang.NullPointerException en LoadedApk.makeApplication

¡Realmente lo aprecio!

05-01 18:08:31.109: W/dalvikvm(15491): threadid=1: thread exiting with uncaught exception (group=0x40a311f8) 
05-01 18:08:31.109: E/AndroidRuntime(15491): FATAL EXCEPTION: main 
05-01 18:08:31.109: E/AndroidRuntime(15491): java.lang.RuntimeException: Unable to instantiate application android.app.Application: java.lang.NullPointerException 
05-01 18:08:31.109: E/AndroidRuntime(15491): at android.app.LoadedApk.makeApplication(LoadedApk.java:482) 
05-01 18:08:31.109: E/AndroidRuntime(15491): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3938) 
05-01 18:08:31.109: E/AndroidRuntime(15491): at android.app.ActivityThread.access$1300(ActivityThread.java:123) 
05-01 18:08:31.109: E/AndroidRuntime(15491): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1185) 
05-01 18:08:31.109: E/AndroidRuntime(15491): at android.os.Handler.dispatchMessage(Handler.java:99) 
05-01 18:08:31.109: E/AndroidRuntime(15491): at android.os.Looper.loop(Looper.java:137) 
05-01 18:08:31.109: E/AndroidRuntime(15491): at android.app.ActivityThread.main(ActivityThread.java:4424) 
05-01 18:08:31.109: E/AndroidRuntime(15491): at java.lang.reflect.Method.invokeNative(Native Method) 
05-01 18:08:31.109: E/AndroidRuntime(15491): at java.lang.reflect.Method.invoke(Method.java:511) 
05-01 18:08:31.109: E/AndroidRuntime(15491): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
05-01 18:08:31.109: E/AndroidRuntime(15491): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
05-01 18:08:31.109: E/AndroidRuntime(15491): at dalvik.system.NativeStart.main(Native Method) 
05-01 18:08:31.109: E/AndroidRuntime(15491): Caused by: java.lang.NullPointerException 
05-01 18:08:31.109: E/AndroidRuntime(15491): at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:362) 
05-01 18:08:31.109: E/AndroidRuntime(15491): at android.app.LoadedApk.getClassLoader(LoadedApk.java:305) 
05-01 18:08:31.109: E/AndroidRuntime(15491): at android.app.LoadedApk.makeApplication(LoadedApk.java:474) 
05-01 18:08:31.109: E/AndroidRuntime(15491): ... 11 more 
+0

pls publique aquí un código – MAC

+0

código, y no estoy seguro de qué significa "una vez cada 4-5 veces", ¿quiere decir? una de cada cinco veces ...? – Idistic

+4

El NPE está dentro del código de Android ... ¿cómo sabe ella qué código publicar? ¿Qué SDK/ADT estás usando? – JRaymond

Respuesta

25

mirado en el código fuente del ICS - Parece que por alguna razón el Gestor de paquetes no puede obtener su información del paquete - que sólo podría ser un/fallo ADT Eclipse Eclipse, donde tiene algún tipo de bloqueo en el archivo , pero sea lo que sea, no parece ser algo que puedas causar con tu código. Sugeriría ejecutar una aplicación limpia, desinstalando la aplicación desde el emulador/dispositivo, o si eso no funciona, puedes probar un espacio de trabajo de eclipse nuevo.

Otra cosa que podría ser un problema es si usted está utilizando un proyecto de biblioteca - tratar de desvincular los dos, la limpieza, y luego vincularlos de nuevo otra vez - pero eso es todo para mi bolsa de trucos o' :)

ACTUALIZACIÓN: yorkw da una mejor explicación de por qué esto ocurre y su resolución aquí: RuntimeException: Unable to instantiate application

+0

¡Gracias por el consejo con la limpieza! Durante la limpieza, Eclipse tuvo un problema para eliminar algunos viejos .jars ...Los borré manualmente y después de reconstruir el error desapareció. :) –

+0

Este error se produce al utilizar Intellij IDEA, por lo que no es seguro que se trate del error Eclipse. – lomza

+0

Puedo confirmar que esto sucede mientras se ejecuta en ANDROID STUDIO Intellij IDEA – Maxrunner

3

ésta es (como era de esperar *) un error en Eclipse/ADT/adb. Logré solucionarlo desinstalando mi aplicación del emulador. Espero que no vuelva, pero no voy a contener la respiración.

* En serio, Eclipse & ADT parecen ser las piezas de software más complicadas que he usado. ¡En solo un día me encontré con al menos cuatro errores diferentes muy molestos! (Este, ddms tubería rota, espacio de trabajo en uso pero no lo es, dex está fuera de la memoria.) Es vergonzosamente de mala calidad. ¡Gracias a Dios que tenemos stackoverflow!

Editar: Hablé demasiado pronto. El error vuelve tan pronto como ejecutas la aplicación por segunda vez.

+3

Sí, esto me está volviendo loco también. Me sorprende que con todos los recursos de Googles (y la inversión en Android) ¿por qué no han desarrollado un IDE propio que esté más al nivel de Xcode? – wired00

+0

En la MacBook Pro que uso en el trabajo, tengo que salir y reiniciar Eclipse unas 3 veces al día. ¡Eso es ridículo! Ni siquiera me explique cómo el rendimiento cambia a @ # $% al editar archivos XML en Eclipse (Juno). –

+1

@ wired00 Afortunadamente ahora tenemos Android Studio. ¡Uf! – edwoollard

-2

Esto es un error del archivo .project en su proyecto. Puede abrir otros archivos .project en un proyecto sin errores para comparar. Casi, puede ver el error con la etiqueta <buildCommand> en este archivo.

1

Tuve problemas con este error también. El error ocurre de manera incoherente. Descubrí que era una dependencia de la biblioteca que no estaba incluida en la ruta de compilación para el nivel API 16 (android-support-v4)

1

También recibo este error cuando ejecuto mi aplicación en 4.x o superior, tanto en el emulador como en el dispositivo real , pero el error no impide el lanzamiento de mi aplicación, así que simplemente lo ignoro.

+0

Acepto, lo veo en dispositivos 4.x y no rompe la funcionalidad. Traté de detener mi aplicación y no causa la excepción, solo ocurre en Eclipse cuando vuelvo a implementar la aplicación en un dispositivo 4.x. –

1

También ocurre si está intentando llamar al new Intent(getActivity(), ActivityXY.class) cuando se terminó la actividad y se recolectó el garabage. Por lo general, es un indicador de que se olvidó de cancelar algunas operaciones asincrónicas cuando se destruyó la actividad/fragmento.

Cuestiones relacionadas