Error Android – java.lang.NoClassDefFoundError sin motivo aparente


Este error puede darse de manera inesperada -antes funcionaba todo correctamente y de repente da este error- o por haber actualizado el ADT.

Se muestra el siguiente error en el Log que proviene de una de nuestras clases que hemos creado:

E/AndroidRuntime(5410): Caused by: java.lang.NoClassDefFoundError: miPropiaClaseDeEsteProyecto

 

También puede darse por alguna librería importada, como por ejemplo con la librería "libGoogleAnalyticsV2.jar", mostrando:

E/AndroidRuntime(5410): Caused by: java.lang.NoClassDefFoundError: com.google.analytics.tracking.android.EasyTracker

O como por ejemplo con la librería "gcm.jar", mostrando:

E/AndroidRuntime(5410): Caused by: java.lang.NoClassDefFoundError: com.google.android.gcm.GCMRegistrar

 

Solución 1

Probaremos limpiando el proyecto.

Nota: Recomendamos hacer una copia de seguridad del proyecto antes de continuar. Limpiar suele ser seguro, pero alguna vez limpia cosas de más.

Para ello iremos a la barra de herramientas a "Project" y en el menú desplegable a "Clean…"

Para Android en Eclipse hacer un Clean del proyecto 1 - www.jarroba.com

En la ventana que se nos abre seleccionaremos "Clean projects selected below" para poder seleccionar el proyecto que queremos limpiar, lo seleccionamos y pulsamos "OK".

Para Android en Eclipse hacer un Clean del proyecto 2 - www.jarroba.com

Comprobamos que funcione. Si sigue sin funcionar probamos la solución 2.

 

Solución 2

Primero miramos que la carpeta donde están los jar se llama "libs".

 librerias jar en la carpeta libs en Android - www.jarroba.com

Sino es así hay que renombrarla (a veces está como "lib" sin la "s"; "lib" sin "s" está mal nombrada, renombrar a "libs"). Para renombrar la carpeta pulsamos con le botón derecho del ratón sobre ella, luego elegimos "Refactor" y después "Rename…". En la ventana emergente que se abre le ponemos el nombre "libs" y aceptamos.

Renombrar carpeta libs - www.jarroba

Echo lo anterior, continuamos. Pulsamos con el botón derecho del ratón sobre el proyecto. Seleccionamos "Build Path" y luego "Configure Build Path…".

Build Path de Eclipse para Android 1 - www.jarroba.com

En la pestaña "Order and Export". Veremos seguramente que están desmarcados los ".jar". Marcamos todos los que haya (Seguramente tengamos el que se llama "android-support-v4.jar"; en este ejemplo se ven otras dos librerías muy usadas en Android que son "gcm.jar" y "libGoogleAnalyticsV2.jar", podrías tener otras). Pulsamos el botón de "OK".

Build Path de Eclipse para Android 2 - www.jarroba.com

Probamos. Si sigue sin funcionar limpiamos el proyecto una última vez (hacer o rehacer la solución 1 y probar de nuevo). Ya debería de volver a funcionar todo correctamente.

Comparte esta entrada en:
Safe Creative #1401310112503
Error Android – java.lang.NoClassDefFoundError sin motivo aparente por "www.jarroba.com" esta bajo una licencia Creative Commons
Reconocimiento-NoComercial-CompartirIgual 3.0 Unported License.
Creado a partir de la obra en www.jarroba.com

One thought on “Error Android – java.lang.NoClassDefFoundError sin motivo aparente”

  1. BUENISIMO!!!!

    Una Ayuda buenisima. He tenido que hacer los dos pasos consecutivamente, y problema RESUELTO!

     

    MUCHISIMAS GRACIAS!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.