RuntimeException: no se puede crear una instancia de la aplicación

97

Cuando ejecuto mi aplicación, cada vez que obtengo la siguiente excepción en mi logcat:

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

Nota: Cuando desinstalo la aplicación del emulador y la ejecuto, no obtengo esta excepción, pero cuando vuelvo a ejecutar la aplicación instalada en el emulador, obtengo esto. Por favor ayuda.

user182944
fuente
1
si su paquete es android.app.Application, intente cambiar el nombre del paquete, parece un poco sospechoso, se parece al paquete del sistema.
No está en blanco
También asegúrese de que su aplicación esté declarada en el manifiesto.
dcow
Expanda la línea Caused by: java.lang.NullPointerException. Debe haber una referencia a una línea en su solicitud más adelante
Zaid Daghestani
No, no tengo ningún paquete como el que mencionaste en mi solicitud. La aplicación se declara en el manifiesto como: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.infy.meetingmanager.activity" android:versionCode="1" android:versionName="1.0" > <application...> <activity android:name=".LoginActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
user182944
¿En qué versión de Android se ejecuta su aplicación, la 4.0?
yorkw

Respuestas:

194

Este es un mensaje de error detallado generado por el marco subyacente cuando dalvik reinstala el archivo .apk e intenta reutilizar o reciclar la actividad / vista abierta anteriormente del mismo paquete (si aún no ha cerrado la aplicación instalada anterior). No tiene nada que ver con su aplicación, además, es muy poco probable que su aplicación se congele o se bloquee debido a este detallado mensaje de error en el dispositivo del usuario final.

Parece que este registro de errores detallado de Dalvik solo sucedió en el sistema Android 4.0, lo probé yo mismo en el entorno de ejecución de Android 3.2 y 2.3.3, donde no puede replicar para que este mensaje no se muestre en ninguno de ellos. Una pregunta similar se ha discutido antes aquí y alguien ha llenado un informe de error en Android Issues Tracker .

No creo que deba preocuparse demasiado por este registro de errores detallado en este momento, si busca más registros antes y después de este error rojo en Logcat, puede ver la historia completa y encontrar que la actividad / vista abierta anterior (que están marcados como estado muerto) son asesinados y el recién reinstalado aparece finalmente.

yorkw
fuente
2
Hola, No, mi aplicación no se bloquea ni se congela debido a esa excepción, funciona bien incluso después de que se lanza la excepción. Acabo de ver la excepción en el logcat y no lo sabía, por lo que pensé en preguntar lo mismo. Gracias por la información, muy útil.
user182944
3
Recibo esto en la consola de desarrollo de una aplicación de producción. Parece suceder principalmente con 4.2, pero también he visto otra versión (4.1, 4.4).
Dustin
3
@Dustin, ¿resolviste esto? ¡Ya que estas excepciones informan como máximo 34 por semana! ¡y muchas quejas en los mensajes de los usuarios!
thecr0w
1
Todavía lo obtengo localmente en Android 5.1.1.
Sam
1
Ocurre incluso en 5.1.1. Que esta pasando?
desarrollador de Android
16

Me doy cuenta de que es una pregunta muy antigua, pero de todos modos puede resultar útil. Descubrí que cuando observo este error en mi propio desarrollo, se debe a que la instancia de mi aplicación que se estaba ejecutando anteriormente no se cierra correctamente, por ejemplo, al cerrar los subprocesos en segundo plano antes de salir.

JulianSymes
fuente
Sí, presionar el botón de inicio en mi teléfono y luego ejecutar esto nuevamente elimina este error para mí también.
Agresor
Tiene sentido, pero ¿cómo puede una aplicación cerrarse perfectamente cuando está abierta frente al usuario y luego Android la elimina para actualizarla?
Sam
Presumiblemente, Android invoca métodos onDestroy () en ese escenario, ¿no? Uno esperaría que sí.
JulianSymes
2

Recibí el mismo error cuando intenté conectarme a Internet con JSOUP dentro de mi clase de aplicación. Fue complicado, porque la aplicación se ejecuta en el emulador pero no en el dispositivo real. Resultó que utilicé mal la biblioteca JSOUP. Cargando la página en un nuevo hilo resolvió mi problema.

Espero haber ayudado a alguien.

Yoda066
fuente
2

Espero que esto ayude a alguien. Vaya a las aplicaciones en ejecución en su emulador haciendo clic aquí:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Cierre la aplicación que está intentando instalar y vuelva a ejecutarla. NO es necesario desinstalar / reinstalar la aplicación o limpiar el proyecto.

Ojonugwa Jude Ochalifu
fuente
1

A mí me ayudó a limpiar el Proyecto. En Eclipse:
- Proyecto -> Limpiar
Por favor controle ese Proyecto -> Construir automáticamente está marcado
Si la carpeta gen está vacía después de eso, hay un error en la carpeta res. ¡A menudo, los errores en la carpeta res no se muestran con la cruz roja! Buena suerte y saludos

stefan96
fuente
No me ayudó. Cuando uso adbpara actualizar de uno de mis apks de producción a otro, este problema ocurre, por lo que no parece específico del IDE en mi caso.
Sam
0

En mi caso, este error aparece después de haber importado el proyecto Android Maven a un nuevo espacio de trabajo y la carpeta SRC no se agregó automáticamente a la ruta de compilación.

Haga clic con el botón derecho en el proyecto / Ruta de compilación / Configurar ruta de compilación / Fuente: compruebe si faltan fuentes.

Andrey Uglev
fuente
0

Tengo el mismo problema. Limpiar el proyecto funcionó para mí.

Seleccione el proyecto, vaya a Proyecto -> Limpiar

cnuis2cool
fuente
No me ayudó. Cuando uso adbpara actualizar de uno de mis apks de producción a otro, este problema ocurre, por lo que no parece específico del IDE en mi caso.
Sam
0

En mi caso, logcat me muestra que no pudo encontrar la actividad inicial, pero la ruta de Dex era diferente, era "... / data / app / myapp-1" en lugar de "... / data / app / myapp" . Soved esto haciendo clic en el nombre del proyecto elcipse "myapp" en la ventana del Explorador de paquetes. Luego haga clic derecho en él, -> refactor-> renombrar ... Establecí el nombre del proyecto en myapp-1, y luego, -> refactor-> renombrar ... y de nuevo a "myapp". Entonces funcionó ... ¿algún tipo de error en eclipse?

ldt
fuente
0

Tengo el mismo problema. Desinstalar mi aplicación y luego reinstalarla resolvió el problema.

swati
fuente
0

Experimenté esto cuando importé mi proyecto que fue construido desde una máquina diferente. Simplemente invalide las cachés y reinicie

Archivo> Invalidar cachés / Reiniciar> Invalidar y reiniciar

Anish
fuente
0

Cambié el applicationId a algo diferente en (Módulo: aplicación) archivo build.gradle, ejecuté la aplicación nuevamente en mi dispositivo. Luego, deshago el cambio y ejecuto la aplicación nuevamente y todo funciona. Funciona en Android Studio 2.3.1 y 4 dispositivos diferentes que tengo aquí, de 5.0 a 7.0.

Davi Caetano
fuente
0

Encuentro esta pregunta. Cuando se usa gradle clean, ¡ gradle installDebugfunciona bien!

   AndroidRuntime  D  Shutting down VM
E  FATAL EXCEPTION: main
E  Process: tv.panda.live.broadcast, PID: 4685
E  java.lang.RuntimeException: Unable to instantiate application tv.panda.live.broadcast.PandaApplication: java.lang.ClassNotFoundException: Didn't find class "tv.panda.live.broadcast.PandaApplication" o
   n path: DexPathList[[zip file "/data/app/tv.panda.live.broadcast-1/base.apk"],nativeLibraryDirectories=[/data/app/tv.panda.live.broadcast-1/lib/arm, /vendor/lib, /system/lib]]
E      at android.app.LoadedApk.makeApplication(LoadedApk.java:572)
E      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4883)
E      at android.app.ActivityThread.access$1500(ActivityThread.java:178)
E      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1573)
E      at android.os.Handler.dispatchMessage(Handler.java:111)
E      at android.os.Looper.loop(Looper.java:194)
E      at android.app.ActivityThread.main(ActivityThread.java:5691)
E      at java.lang.reflect.Method.invoke(Native Method)
E      at java.lang.reflect.Method.invoke(Method.java:372)
E      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
E      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
E  Caused by: java.lang.ClassNotFoundException: Didn't find class "tv.panda.live.broadcast.PandaApplication" on path: DexPathList[[zip file "/data/app/tv.panda.live.broadcast-1/base.apk"],nativeLibraryDi
   rectories=[/data/app/tv.panda.live.broadcast-1/lib/arm, /vendor/lib, /system/lib]]
E      at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
E      at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
E      at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
E      at android.app.Instrumentation.newApplication(Instrumentation.java:988)
E      at android.app.LoadedApk.makeApplication(LoadedApk.java:567)
E      ... 10 more
E      Suppressed: java.lang.ClassNotFoundException: tv.panda.live.broadcast.PandaApplication
E          at java.lang.Class.classForName(Native Method)
E          at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
E          at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
E          at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
E          ... 13 more
E      Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
androidmalin
fuente
0

Solución simple:

Simplemente reinicie su emulador o dispositivo móvil. ¡Y el problema se ha ido! El motivo de este problema se debió a que una actividad anterior de la aplicación se detuvo por error.

Prajwal W
fuente