2012-05-07 23 views
11

Desde que actualicé ADT a 19, empecé a recibir el siguiente error. El problema ocurre cada vez que inicio mis aplicaciones. Revisé todas las publicaciones anteriores relacionadas con esto, pero parece que ninguna de ellas ayuda. cualquier idea sería muy apreciada ...ClassNotFoundException después de actualizar a ADT 18

Mi configuración

  1. Actualmente tengo ADT 18, 19 SDK, elcipse en Windows 7 de 64 bits.
  2. Uso el proyecto de biblioteca que hace que ashare.jar y todos mis archivos jar externos (es decir, dropbox, codec de commons) estén en la carpeta "libs" en el proyecto de biblioteca (Ashare).
  3. No uso proguard.

Cómo vemos este problema.

  1. Crea apk en Eclipse> {} MiProyecto> clic derecho> Android Herramientas> Exportar firmaron paquete de aplicaciones
  2. instalar el apk en el emulador o dev.phone usando "adb instalar XXX.apk"
  3. inicio del aplicación Entonces, BOOM. arrojó el error.

Algunas cosas notables son

  1. Empezó a pasar después he actualizado a ADT en mi Eclipse a la versión 18
  2. Sucede sólo cuando hago apk firmado y ejecutarlo en el emulador o prog. teléfono.
  3. No veo problema si ejecuto mi aplicación usando {MyProject}> clic derecho> Ejecutar como> Aplicación Android
  4. Cuando revisé dentro de classes.dex, veo que faltan algunas clases allí. No estoy seguro, pero me siento proceso de construir no está incluida en todas las clases classes.dex
  5. durante la exportación, no hay ningún error en la consola de Eclipse (utilizo opción detallada en Android> Crear> Construir ajuste de la salida)
Excepción

Java

05-07 08:52:48.336: D/AndroidRuntime(3055): Shutting down VM 
05-07 08:52:48.336: W/dalvikvm(3055): threadid=1: thread exiting with uncaught exception (group=0x40a3e1f8) 
05-07 08:52:48.340: E/AndroidRuntime(3055): FATAL EXCEPTION: main 
05-07 08:52:48.340: E/AndroidRuntime(3055): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.acj0.barcodeexpdemo/com.acj0.barcodeexpdemo.Launcher}: java.lang.ClassNotFoundException: com.acj0.barcodeexpdemo.Launcher 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1880) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.ActivityThread.access$600(ActivityThread.java:123) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.os.Handler.dispatchMessage(Handler.java:99) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.os.Looper.loop(Looper.java:137) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.ActivityThread.main(ActivityThread.java:4424) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at java.lang.reflect.Method.invoke(Method.java:511) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at dalvik.system.NativeStart.main(Native Method) 
05-07 08:52:48.340: E/AndroidRuntime(3055): Caused by: java.lang.ClassNotFoundException: com.acj0.barcodeexpdemo.Launcher 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.Instrumentation.newActivity(Instrumentation.java:1023) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1871) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  ... 11 more 

ACTUALIZACIÓN 5/7/2012

  • Todos mis frascos están en carpeta "libs" de la Biblioteca proyecto y todos ellos me incluyera en "Dependencias" Android

ACTUALIZACIÓN 5/18/2012 - TEMPORALMENTE RESOLVER

  • encontré solución temporal. Justo antes de ejecutar "Exportar paquete de aplicaciones firmado", hice "Limpiar" SIN la opción "Crear automáticamente" marcada. Entonces, ya no veo el error. No sé por qué funciona. Si tienes alguna idea, házmelo saber.
+0

Deja la fuente de las clases que encontró que falta en el archivo de Dex. También intente capturar el logcat generado durante el proceso de odex cuando se instala el apk. –

+0

Tuve un problema similar ... ¿Las bibliotecas están incluidas en una carpeta llamada lib? O libs? Deberías ir con el segundo ... – Shine

+0

Tuve la misma excepción cuando actualicé las versiones de SDK. La pregunta y la respuesta es ([aquí] (http://stackoverflow.com/questions/9831019/updated-sdk-version-getting-classnotfoundexception-android-support-v4-view-vie)) – wdziemia

Respuesta

2

Coloque sus jarras externas en el directorio libs. Puede echar un vistazo a this link

+0

Gracias a lujop. Tengo todos mis frascos en la carpeta "libs" y puedo ver todos los que se incluyen automáticamente en Dependencias de Android. – ChrsitopherJ

+0

¿Utiliza proguard? – lujop

+0

No. no usamos proguard. Este problema está sucediendo sin ninguna configuración proguard. – ChrsitopherJ

1

Tuve el mismo problema, aunque hice todo lo que se describe en el link lujop mentioned. Aquí es lo que falta:

  1. Haga clic derecho sobre su proyecto> Build Path> Configurar Vía de construcción ...
  2. Haga clic en la "Orden y exportación" ficha
  3. marque las casillas de verificación junto a las bibliotecas (Android xxx, dependencias Android) y otros proyectos que se están refiriendo a
  4. limpia su proyecto
  5. eso debería ser lo

espero que ayude!

0

Esto me llevó frutos secos, así como para todo un día, sólo para darse cuenta nombre de la aplicación tonto de mí en el manifiesto que estaba mal. Para nombre de la aplicación que tenían: android: name = "com.diack.locdatafeeds"

que faltaba mi actividad principal android: name = "com.diack.locdatafeeds.Mainactivity"

creo que sirve alguien

Cuestiones relacionadas