NoClassDefFoundError – Eclipse y Android

Tengo un problema al intentar ejecutar una aplicación de Android que, hasta la adición de una segunda biblioteca externa a su ruta de construcción, funcionaba bien. Desde que he añadido el tarro scoreninja, ahora obtengo un NoClassDefFoundError cuando intento ejecutar la aplicación.

Aquí está el mensaje:

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

Como todos los scripts de construcción son generados por las herramientas de Android (?), No estoy seguro de qué más puedo hacer aparte de limpiar y 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 agregando los jarras a la ruta de compilación de la manera Eclipse normal. Esto funcionó bien hasta mi actualización.

Después de mi actualización, estaba recibiendo el NoClassDefFoundError para una clase que podía ver claramente estaba incluido en el frasco (verificando las clases de ReferencedLibraries).

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

No tuve que poner la jar-library en assets o lib (s), pero solo marque la casilla de este jar en Propiedades -> Java Build Path -> "Order and Export" (estaba listado antes, pero no seleccionado )

Agregando el tarro externo en su trayectoria de la estructura apenas agrega el tarro a su paquete, pero no estará disponible durante runtime.

Para que el tarro esté disponible en tiempo de ejecución , necesita:

  • Ponga el frasco en su carpeta de assets
  • Incluya esta copia del frasco en su ruta de construcción
  • Ir a la pestaña de exportación en la misma ventana emergente
  • Marque la casilla contra el tarro recién agregado

Tuve esto para MapActivity. Builds in Eclipse obtiene NoClassDefFound en depurador.

Olvidó agregar biblioteca a manifest, dentro de <Application>...</Application> elemento

 <uses-library android:name="com.google.android.maps" /> 

He cambiado el orden de los proyectos incluidos (Eclipse / Configure Build Path / Order y Export). He trasladado mis dos proyectos dependientes a la parte superior de la "orden y exportación" lista. Resolvió el problema "NoClassDefFoundError".

Es extraño para mí. No me enteré de la importancia del orden de las bibliotecas y proyectos incluidos. Android + Eclipse es divertido 🙂

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

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

En Eclipse, vaya a Proyecto => Limpiar. Seleccione su proyecto y Eclipse parecía arreglarlo por sí mismo. Para mí esto resolvió el problema.

Espero que esto ayude.

He encontrado el mismo problema. La razón era que la biblioteca que estaba tratando de utilizar se había compilado con un estándar JDK 7.

Lo recompilé con las -source 1.6 -target 1.6 y funcionó bien.

Lo mismo funcionó para mí: Propiedades -> Java Build Path -> "Orden y exportación" Curiosamente – ¿por qué esto no se hace automáticamente? Supongo que falta algún ajuste. También esto sucedió para mí después de la actualización de SDK.

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

John O'Connor tiene razón con el tema. El problema se queda 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

He intentado todo desde este post (y algunos otros puestos), y no funcionó para mí, esta es, con mucho, la actualización ADT más terrible que he experimentado, y nunca actualizar sin una copia de trabajo de ADT.

Conseguí resolverlo quitando el proyecto, y después agregarlo otra vez usando una reserva de fuente que tenía.

Tuve este mismo error con ADT22. Se resolvió comprobar "Android Private Libraries" en propiedades -> Java build path -> Orden y exportación. Si está utilizando cualquier proyecto de biblioteca, lo mismo se debe hacer para ellos también.

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

Mi proyecto androide 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 lo compile (solo), no lo revise en la pestaña "Order and Export"
  • También copie este archivo jar en la carpeta "libs" del proyecto android para que esté disponible en tiempo de ejecución

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

A veces tienes que tomar todo el proyecto externo como biblioteca y no solo el tarro:

Mi problema resolvió agregando todo el proyecto (en mi caso google-play-services_lib) como biblioteca y no solo el jar. Los pasos a seguir (desde la respuesta @style ):

  1. Archivo-> Nuevo-> Otros
  2. Selecciona el proyecto de Android
  3. Seleccione "Crear proyecto de fuente existente"
  4. Haga clic en el botón "Examinar …" y navegue hasta el proyecto deseado
  5. Finalizar (ahora proyecto de barra de acción en su área de trabajo)
  6. Haga clic derecho en su proyecto -> Propiedades
  7. En la sección Android-> Biblioteca, haga clic en Añadir
  8. Seleccione proyecto añadido recientemente -> Ok

A veces sucederá debido a no incluir jar, que tiene dependencia, con la etiqueta "uses-libary" en su AndroidManifest.xml.

Además, asegúrese de que debe estar dentro de la etiqueta "aplicación".

Saludos,

Ravi

Tenía este problema y fue causado por no "exportar" la biblioteca. El problema era apenas porque los archivos .class para algunas clases no están disponibles mientras que empaquetan el tiempo de APK.Compile él trabajará muy bien con hacia fuera exporting

En mi caso estaba usando la clase "CusrsorAdapter" y bajo "JavaBuildPath-> Order and Export" No he comprobado el soporte V4 jar. Una vez que se seleccionó el problema se ha ido.

Para cerciorarse de que usted está consiguiendo el error de noClassDefFound debido a la razón antedicha, comprueba por favor su logacat, usted verá el error desconocido de las clases estupendas en la época de la ejecución.

He intentado varias cosas y la razón de error en mi caso fue el conflicto entre maps.jar y Google Api en Java Build Path-> Libraries. Así que, cuando he eliminado el maps.jar funcionó bien.

Saludos,

Wahib

Asegúrese de que su archivo jar está en el directorio libs de su proyecto en el que está utilizando la versión ADT más reciente con su eclipse.

Tengo el mismo problema … Para arreglarlo, acabo de quitar mi Android Libs Libs en "construir ruta" y haga clic en ok … y cuando abrí op el "camino de la construcción" de nuevo eclipse había añadido por sí mismo de nuevo, Y luego funcionó para mí;) …

Pasé dos días tratando de resolver este problema después de actualizar ADT. Finalmente tuve la suerte de conseguir este post aquí:

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

Que me llevó en la dirección correcta. Cuando siga la solución – recuerde reemplazar la biblioteca de soporte de Android de todos sus proyectos a la misma versión (quítela y vuelva a instalarla en los proyectos). Espero que esto ayude, buena suerte

Si prefieres saber qué archivos están relacionados con la solución, aquí es lo que encontré. Simplemente cambie el archivo .classpath a

 <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="src" path="gen"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> <classpathentry kind="output" path="bin/classes"/> </classpath> 

Reemplace el archivo .classpath en todos los proyectos de biblioteca y en el proyecto principal de android. El archivo .classpath se encuentra en la carpeta raíz del proyecto eclipse. De la causa no se olvide de agregar sus propias entradas de classpath, si usted tiene cualquiera (así que compare con su versión actual de .classpath).

Creo que este es el mismo resultado que ir a través de los menús de eclipse como componavt-user explicado anteriormente (Eclipse / Configure Build Path / Order y Export).

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

Si cambia su pedido y exporta en su ruta de construcción de proyecto, este error no se producirá. La otra manera de lograrlo es a través de .classpath en la carpeta del proyecto.

Prueba esto:-

Paso 1

Agregue todas las bibliotecas para crear pat en Eclipse (significa que todas las librerías bibliotecas referenciadas)

Paso 2

Elimine el archivo R.java y vuelva a crear el proyecto. No te preocupes, R.java automáticamente se recrea.

Relajarse

Como he entendido, tu proyecto no muestra errores, porque has incluido el Jar. Pero el Jar no se utilizará, cuando su proyecto se "exportó" al dispositivo. Prueba esto

Proyecto -> Propiedades

Java Build Path / Pedido y exportación

[✔] Tu tarro

Esto me sucede muy a menudo.

La última vez que pasó, puedo recordar que fue causada por cambiar el Eclipse ADT (edición especial de Google) a Android Studio, y cambiar de nuevo. Básicamente he intentado todos los métodos que puedo encontrar en stackoverflow que no funcionó para mí.

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

Acutally usted ha alcanzado el problema infame del límite 64k, usted necesita permitir el multidex.

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

  • Eliminar los corchetes de un conjunto de listas a una vista de texto?
  • Android: Configurar onClickListener en una parte del texto de un TextView - Problema
  • ¿Cuál es el tiempo de espera predeterminado de usar HttpGet y DefaultHttpClient?
  • ERROR: createWindowSurface falló EGL_BAD_ALLOC
  • Cómo obtener eventos de google cuenta calendario en android?
  • Error al descifrar en java
  • Android Cómo pasar LinkedHashMap entre las actividades?
  • Enviar notificación a un tema específico en Firebase en Java
  • El campo ADT no está configurado
  • Encriptación de Android
  • ¿Todos los dispositivos android tienen la carpeta "sdcard"?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.