NoClassDefFoundError – Eclipse y Android

Tengo un problema al tratar de ejecutar una aplicación de Android que, hasta agregar una segunda biblioteca externa a su ruta de comstackción, funcionaba bien. Desde que agregué el jar de scoreninja, ahora obtengo un NoClassDefFoundError cuando bash ejecutar la aplicación.

Este es el mensaje:

02-11 21:45:26.154: ERROR/AndroidRuntime(3654): java.lang.NoClassDefFoundError: com.scoreninja.adapter.ScoreNinjaAdapter 

Como todos los scripts de comstackción son generados por las herramientas de Android (?), No estoy seguro de qué más puedo hacer que limpiar, reconstruir o reiniciar eclipse (ya he probado los tres). ¿Alguien sabe cómo puedo enmendar esto?

Tuve este problema después de actualizar ADT.

Estaba almacenando todos mis archivos JAR en una carpeta llamada “lib” y añadiendo los archivos jar a la ruta de comstackción de la forma normal de Eclipse. Esto funcionó bien hasta mi actualización.

Después de mi actualización, obtenía el NoClassDefFoundError para una clase que podía ver claramente incluida en el contenedor (revisando las clases de Bibliotecas de referencia).

La solución fue eliminar mis jar de la ruta de comstackción y cambiar el nombre de mi carpeta “lib” a “libs”. Esta es una convención de ants, y parece ser la forma en que el ADT nuevo encuentra e incluye bibliotecas en un archivo .apk. Una vez que hice esto, todo funcionó bien.

No tuve que poner la biblioteca de jar en assets o lib (s), sino que solo marqué la casilla de este jar en Propiedades -> Ruta de comstackción de Java -> “Ordenar y exportar” (estaba en la lista anterior, pero no seleccionada )

Al agregar el jar externo a su ruta de comstackción, solo agrega el jar a su paquete, pero no estará disponible durante el tiempo de ejecución.

Para que el contenedor esté disponible en tiempo de ejecución , debe:

  • Coloque el contenedor debajo de su carpeta de assets
  • Incluya esta copia del jar en su ruta de comstackción
  • Ve a la pestaña de exportación en la misma ventana emergente
  • Marque la casilla contra el flask recién agregado

Tenía esto para MapActivity. Las comstackciones en Eclipse obtienen NoClassDefFound en el depurador.

Olvidé agregar la biblioteca para manifestar, dentro del elemento ...

  

Cambié el orden de los proyectos incluidos (Eclipse / Configure Build Path / Order y Export). He movido mis dos proyectos dependientes a la parte superior de la lista “Ordenar y exportar”. Resolvió el problema “NoClassDefFoundError”.

Es extraño para mi No escuché acerca de la importancia del orden de las bibliotecas y proyectos incluidos. Android + Eclipse es divertido 🙂

No estoy seguro de si esto está relacionado, o si aún está buscando una respuesta, pero me encontré con este hilo mientras trataba de investigar el mismo error (pero posiblemente por diferentes razones).

No pude encontrar ninguna solución en línea, pero una respuesta con un hilo similar me hizo pensar y me di cuenta de que probablemente solo necesitaba reconstruir (o limpiar) el proyecto.

En Eclipse, vaya a Proyecto => Limpiar. Seleccione su proyecto y Eclipse pareció arreglarlo solo. Para mí, esto resolvió el problema.

Espero que esto ayude.

He encontrado el mismo problema. La razón fue que la biblioteca que estaba tratando de usar había sido comstackda con un JDK 7 estándar.

Lo volví a comstackr con las -source 1.6 -target 1.6 del -source 1.6 -target 1.6 y funcionó bien.

Lo mismo funcionó para mí: Propiedades -> Java Build Path -> “Ordenar y exportar” Curiosamente, ¿por qué esto no se hace automáticamente? Supongo que falta algo de configuración. También esto me sucedió después de la actualización de SDK.

Haga clic con el botón derecho en la carpeta del proyecto, busque Propiedades en la ruta de comstackción de Java y seleccione los archivos jar que ve. Esto ha funcionado para mí.

John O’Connor está en lo cierto con el problema. El problema se mantiene con la instalación de ADT 17 y superior. Encontré este enlace para corregir el error:

http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17

Probé todo lo de esta publicación (y algunas otras publicaciones), y no funcionó, esta es la actualización de ADT más terrible que he experimentado, y nunca la actualizaré sin una copia de seguridad de ADT.

Logré resolverlo eliminando el proyecto y luego volviéndolo a agregar utilizando una copia de respaldo de origen que tenía.

Tuve el mismo error con ADT22. Se resolvió verificando “Librerías privadas de Android” en las propiedades -> Ruta de comstackción de Java -> Ordenar y exportar. Si está utilizando cualquier proyecto de biblioteca, lo mismo debe hacerse por ellos.

Todas las respuestas existentes no funcionan para mí porque mi caso es un poco diferente. Me llevó unas horas hacerlo funcionar. Estoy usando Eclipse.

Mi proyecto de Android incluye otro proyecto normal de Java 1.6, que necesita un archivo jar de terceros. El truco es:

  • incluya el jar en el proyecto java normal para que compile (solo), no lo verifique en la pestaña “Ordenar y exportar”
  • también copie este archivo jar en la carpeta “libs” del proyecto de Android para que esté disponible en tiempo de ejecución

Espero que esto ayude a aquellos que tienen escenarios similares al mío.

a veces debes tomar todo el proyecto externo como biblioteca y no solo como jar.

Mi problema se resolvió agregando todo el proyecto (en mi caso, google-play-services_lib) como biblioteca y no solo como jar. los pasos para hacerlo (desde @style respuesta ):

  1. Archivo-> Nuevo-> Otro
  2. Seleccione Android Project
  3. Seleccione “Crear proyecto desde el origen existente”
  4. Haga clic en el botón “Buscar …” y navegue hasta el proyecto deseado
  5. Finish (ahora proyecto de barra de acciones en su área de trabajo)
  6. Haga clic derecho en su proyecto -> Propiedades
  7. En la sección Android-> Biblioteca, haga clic en Agregar
  8. seleccionar proyecto recientemente agregado -> Ok

Algunas veces sucederá debido a que no incluye jar, que tiene dependencia, con la etiqueta “uses-libary” en su AndroidManifest.xml.

Además, asegúrese de que esté dentro de la etiqueta “aplicación”.

Saludos,

Ravi

Tuve este problema y fue causado por no “exportar” la biblioteca. La causa fue solo porque los archivos .class para algunas clases no están disponibles mientras se empaqueta el APK. Tiempo de comstackción funcionará bien sin exporitar

En mi caso, estaba usando la clase “CusrsorAdapter” y en “JavaBuildPath-> Order and Export”. No revisé el soporte V4 jar. Una vez que se ha seleccionado, el problema desapareció.

Para asegurarse de que obtiene el error noClassDefFound debido a la razón anterior, revise su logacat, verá un error de superclase desconocido en tiempo de ejecución.

Intenté varias cosas y el motivo de error en mi caso fue el conflicto entre maps.jar y Google Api en Java Build Path-> Libraries. Entonces, cuando eliminé el maps.jar funcionó bien.

Saludos,

wahib

por favor, asegúrese de que su archivo jar esté en el directorio libs de su proyecto, ya que está utilizando la versión más nueva de ADT con su eclipse.

Obtuve exactamente el mismo problema … Para solucionarlo, simplemente eliminé mis Libs privadas de Android en “ruta de comstackción” y hice clic en Aceptar … y cuando abrí en la “ruta de comstackción”, eclipse las volvió a agregar por sí mismo, y luego funcionó para mí;) …

Pasé dos días tratando de resolver este problema después de actualizar ADT. finalmente tuve la suerte de obtener esta publicación aquí:

https://code.google.com/p/android/issues/detail?id=55304

lo que me condujo en la dirección correcta. Cuando sigas la solución, recuerda reemplazar la biblioteca de soporte de Android de todos tus proyectos a la misma versión (quítala y vuelve a instalarla en los proyectos). Espero que esto ayude, buena suerte

Si prefieres saber con qué archivos está relacionada la solución, esto es lo que encontré. Simple cambie el archivo .classpath a

          

Reemplace el archivo .classpath en todos los proyectos de la biblioteca y en el proyecto principal de Android. El archivo .classpath está en la carpeta raíz del proyecto eclipse. Por supuesto, no olvide agregar sus propias entradas classpath, en caso de que tenga alguna (así que compare con su versión actual de .classpath).

Creo que este es el mismo resultado que recorrer los menús de eclipse como usuario de componavt explicado anteriormente (Eclipse / Configurar ruta de comstackción / Orden y exportación).

La solución aquí funcionó para mí. Se trata de importar la biblioteca a la carpeta libs, luego modificar el archivo build.gradle y luego limpiar con gradlew.

Si cambia su orden y exporta en la ruta de comstackción de su proyecto, este error no ocurrirá. La otra forma de lograrlo es a través de .classpath en su carpeta de proyecto.

Prueba esto:-

Paso 1

Agregue todas las bibliotecas para comstackr pat en Eclipse (significa hacer que todas las bibliotecas sean referenciadas)

Paso 2

Elimine el archivo R.java y vuelva a comstackr el proyecto. No te preocupes, R.java será recreado automáticamente.

Frío 🙂

Como entendí, su Proyecto no muestra errores, porque incluyó el Jar. Pero el Jar no se usará cuando su Proyecto se “exporte” al dispositivo. Prueba esto

Proyecto -> Propiedades

Ruta de comstackción Java / Orden y exportación

[✔] Tu jar

Esto sucede muy a menudo para mí.

La última vez que sucedió lo que pude recordar fue causado al cambiar el Eclipse ADT (edición especial de Google) a Android Studio, y al volver a encenderlo. Básicamente, probé todos los métodos que puedo encontrar en stackoverflow que no me funcionaron.

Eventualmente, conseguí que la aplicación funcionara nuevamente (no más NoCalssDeffoundError) cambiando mi IDE a Eclipse original (Kepler) con ADT.

Acualmente has alcanzado el infame límite de 64k, necesitas habilitar multidex.

Así es como lo haces. https://developer.android.com/tools/building/multidex.html