java android jodatime noclassdeffounderror libs

java - Añadiendo el tiempo de Joda



android jodatime (1)

Estoy construyendo una aplicación que usa tiempo. Decidí usar el tiempo Joda. Estoy tratando de agregar tiempo joda a mi aplicación. No tengo experiencia en agregar archivos .jar a las librerías. Seguí estos pasos (ver abajo), o eso pensé. Mi proyecto no muestra errores, pero cuando ejecuto una prueba simple: DateTime test = new DateTime(); Obtengo una fuerza de cierre y el siguiente error:

Could not find class ''org.joda.time.DateTime'', referenced from method xxxx java.lang.NoClassDefFoundError: org.joda.time.DateTime

Estos son los pasos que seguí:

  1. Crea tu proyecto android en eclipse.
  2. Descargar Joda Time
  3. En Eclipse, busque su proyecto en el explorador de paquetes y haga clic derecho en él y luego llámelo New -> Folder -> libs . Nota: no hice esto porque ya tenía una carpeta llamada libs
  4. Copie (o) arrastre y suelte el joda-time-2.1.jar en la carpeta libs recién creada.
  5. Vuelva a hacer clic con el botón derecho en su proyecto (en el explorador de paquetes) y luego Properties -> Java Build Path -> Libraries -> Add Jars -> joda-time-2.1.jar .

Ahora puedes probar con este código:

DateTime test = new DateTime();

Después de importar:

import org.joda.time.DateTime;


Como se trata de un proyecto de Android, no basta con hacer referencia al archivo jar de Joda. Deberá empaquetar ese archivo jar junto con su apk, que se puede hacer de la siguiente manera:

  1. Propiedades -> Java Build Path -> Order & Export

  2. Compruebe en el joda-time-*-*.jar y haga clic en Aceptar . Has terminado

Explicación: la referencia al archivo jar solo solucionará los problemas de compilación en Eclipse (o cualquier otro IDE), pero cuando se crea el apk, el archivo jar "joda-time" no se exportará / agrupará junto con su "apk". Esa es la razón por la que lanza el NoClassDefFoundError .

Pero cuando revisa el archivo joda-time en Order & Export , se asegurará de que el archivo esté incluido dentro / junto con su "apk" cada vez que se crea.