2012-02-22 23 views
9

Obtengo la siguiente excepción cada vez que reinstalo mi eclipse directo. Ocurre cada vez que reinstalo una aplicación que está actualmente en primer plano.La aplicación para Android se cuelga al instalar

Espero que este error solo se produzca durante el desarrollo porque provoco la desinstalación de una aplicación en ejecución a través de Eclipse.

¿Alguien ha visto este error en los teléfonos del usuario?

Esto comenzó a suceder para mí cuando cambié a un Galaxy Nexus con ICS.

02-22 11:31:07.098: E/AndroidRuntime(479): FATAL EXCEPTION: main 
02-22 11:31:07.098: E/AndroidRuntime(479): java.lang.RuntimeException: Unable to instantiate application android.app.Application: java.lang.NullPointerException 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.LoadedApk.makeApplication(LoadedApk.java:466) 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3260) 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.ActivityThread.access$2200(ActivityThread.java:117) 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:969) 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.os.Looper.loop(Looper.java:123) 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.ActivityThread.main(ActivityThread.java:3683) 
02-22 11:31:07.098: E/AndroidRuntime(479): at java.lang.reflect.Method.invokeNative(Native Method) 
02-22 11:31:07.098: E/AndroidRuntime(479): at java.lang.reflect.Method.invoke(Method.java:507) 
02-22 11:31:07.098: E/AndroidRuntime(479): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
02-22 11:31:07.098: E/AndroidRuntime(479): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
02-22 11:31:07.098: E/AndroidRuntime(479): at dalvik.system.NativeStart.main(Native Method) 
02-22 11:31:07.098: E/AndroidRuntime(479): Caused by: java.lang.NullPointerException 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:346) 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.LoadedApk.getClassLoader(LoadedApk.java:291) 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.LoadedApk.makeApplication(LoadedApk.java:458) 
02-22 11:31:07.098: E/AndroidRuntime(479): ... 11 more 

En los registros anteriores no encontré nada relacionado con mi aplicación. Pero todavía está cayendo.

¿Alguien puede decirme cuál es el motivo de esto? ¿Es esto un error en Ice Cream Sandwich en el Galaxy Nexus?

+5

¿Puedes cargar tu código por favor? – Android

+1

hay una NP.verifícala. –

+0

por qué votar a favor de esto, no hay nada que ver con mi aplicación en los registros que muestra NullPointer relacionado con la aplicación android.application, si ustedes quieren, publiqué mi manifiesto también con la etiqueta de la aplicación. – sankar

Respuesta

0

Tiene un puntero nulo en la línea 346 en el método initializeJavaContextClassLoader.

02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:346) 

Editar

Aquí es el método de la GrepCode/com.google.android/android/2.3_r1/ android.app.LoadedApk (a partir de line 326)

private void initializeJavaContextClassLoader() { 
    IPackageManager pm = ActivityThread.getPackageManager(); 
    android.content.pm.PackageInfo pi; 
    try { 
     pi = pm.getPackageInfo(mPackageName, 0); 
    } catch (RemoteException e) { 
     throw new AssertionError(e); 
    } 
    /* 
    * Two possible indications that this package could be 
    * sharing its virtual machine with other packages: 
    * 
    * 1.) the sharedUserId attribute is set in the manifest, 
    *  indicating a request to share a VM with other 
    *  packages with the same sharedUserId. 
    * 
    * 2.) the application element of the manifest has an 
    *  attribute specifying a non-default process name, 
    *  indicating the desire to run in another packages VM. 
    */ 
    boolean sharedUserIdSet = (pi.sharedUserId != null); 
    boolean processNameNotDefault = 
      (pi.applicationInfo != null && 
      !mPackageName.equals(pi.applicationInfo.processName)); 
    boolean sharable = (sharedUserIdSet || processNameNotDefault); 
    ClassLoader contextClassLoader = 
      (sharable) 
      ? new WarningContextClassLoader() 
    : mClassLoader; 
      Thread.currentThread().setContextClassLoader(contextClassLoader); 
} 

Parece que podría estar tratando de compartir una máquina virtual con otro paquete.

+0

Ya sé, pero este LoadedApk.java es una clase relacionada con el sistema, ¿qué puedo hacer con mi código? ¿Es mi problema emulador? – sankar

+1

No, no es tu emulador. Sí LoadedApk.java es un archivo relacionado con el sistema, pero es algo que está haciendo con ese método. ¡Es tu código, casi puedo garantizarlo! – rf43

+2

No utilicé este método en ningún lugar de mi código. Esta clase se usa mientras se carga el apk en el dispositivo, luego lo que hice para esto en mi código. – sankar

1

Tengo este problema cuando calle detrás en XML que está mal, tal vez lo que tiene que regenerar la R.java

0

he tenido este problema hace poco, pero a aparecer en IDEA. Tuve que cambiar de mitad de proyecto a Eclipse, ¡ay! No recibí buenas respuestas aquí y eventualmente, después de que terminé el proyecto, volví a IDEA y lo intenté nuevamente. La solución final fue sacar el proyecto de mi espacio de trabajo, eliminar todo, excepto mi fuente y recursos, y luego crear un nuevo proyecto a partir de fuentes existentes. Perdí horas tratando de resolver esto y podría funcionar para usted en Eclipse. Vale la pena intentarlo ...

Buena suerte

Cuestiones relacionadas