Tengo un problema al intentar ejecutar una aplicación de Android que, hasta agregar una segunda biblioteca externa a su ruta de compilación, funcionaba bien. Desde que agregué el scoreninja jar, 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 compilació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 modificar esto?
Respuestas:
Tuve este problema después de actualizar ADT.
Estaba almacenando todos mis archivos JAR en una carpeta llamada "lib" y agregando los frascos a la ruta de compilación de la forma normal de Eclipse. Esto funcionó bien hasta mi actualización.
Después de mi actualización, estaba obteniendo NoClassDefFoundError para una clase que pude ver claramente que estaba incluida en el jar (revisando las clases de las Bibliotecas de referencia).
La solución fue eliminar mis jarras de la ruta de compilació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.
fuente
No tuve que poner la biblioteca jar en activos o lib (s), pero solo marque la casilla de este jar en Propiedades -> Ruta de compilación Java -> "Ordenar y exportar" (se enumeró antes, pero no se seleccionó )
fuente
Al agregar el jar externo a su ruta de compilación, solo agrega el jar a su paquete, pero no estará disponible durante el tiempo de ejecución.
Para que el jar esté disponible en tiempo de ejecución , debe:
assets
carpetafuente
import
declaración para archivos jar externos? Nunca los he usado.assests
enfoque de carpeta?Tenía esto para MapActivity. Las compilaciones en Eclipse obtienen NoClassDefFound en el depurador.
Olvidé agregar la biblioteca al manifiesto,
<Application>...</Application>
elemento interiorfuente
He cambiado el orden de los proyectos incluidos (Eclipse / Configurar ruta de compilación / Ordenar y exportar). He movido mis dos proyectos dependientes a la parte superior de la lista "Ordenar y Exportar". Se resolvió el problema "NoClassDefFoundError".
Es extraño para mi No escuché sobre la importancia del orden de las bibliotecas y proyectos incluidos. Android + Eclipse es divertido :)
fuente
No estoy seguro de si esto está relacionado, o si aún está buscando una respuesta, pero me encontré con este hilo al intentar 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 de que probablemente solo necesitaba reconstruir (o limpiar) el proyecto.
En Eclipse, vaya a Proyecto => Limpiar. Seleccione su proyecto y Eclipse pareció solucionarlo por sí mismo. Para mí esto resolvió el problema.
Espero que esto ayude.
fuente
Application
clase que conduce a un error diferente.He encontrado el mismo problema. La razón fue que la biblioteca que estaba tratando de usar había sido compilada con un JDK 7 estándar.
Lo volví a compilar con las
-source 1.6 -target 1.6
opciones y funcionó bien.fuente
Lo mismo funcionó para mí: Propiedades -> Ruta de compilación de Java -> "Ordenar y exportar" Curiosamente, ¿por qué esto no se hace automáticamente? Supongo que falta alguna configuración. También esto me sucedió después de la actualización del SDK.
fuente
Haga clic con el botón derecho en la carpeta del proyecto, busque Propiedades en la ruta de compilación de Java y seleccione los archivos jar que ve. Esto ha funcionado para mí.
fuente
John O'Connor tiene razón con el problema. El problema persiste 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
fuente
Intenté todo desde esta publicación (y algunas otras publicaciones), y no funcionó para mí, esta es, con mucho, la actualización ADT más terrible que he experimentado, y nunca lo haré sin una copia de seguridad ADT que funcione.
Logré resolverlo eliminando el proyecto y luego agregándolo nuevamente usando una copia de seguridad de origen que tenía.
fuente
Tuve este mismo error con ADT22. Se resolvió marcando "Bibliotecas privadas de Android" en propiedades -> Ruta de compilación de Java -> Ordenar y exportar. Si está utilizando proyectos de biblioteca, también se debe hacer lo mismo para ellos.
fuente
Todas las respuestas existentes no funcionan para mí porque mi caso es un poco diferente. Me llevó unas horas ponerlo a trabajar. 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:
Espero que esto ayude a aquellos que tienen escenarios similares como el mío.
fuente
a veces tienes que tomar todo el proyecto externo como biblioteca y no solo el jar:
mi problema se resolvió agregando todo el proyecto (en mi caso google-play-services_lib) como biblioteca y no solo el jar. los pasos para hacerlo (de @style answer ):
fuente
A veces sucederá debido a que no incluye jar, de la 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
fuente
Tuve este problema y fue causado por no "exportar" la biblioteca. El problema se debió simplemente a que los archivos .class para algunas clases no están disponibles al empaquetar el APK. El tiempo de compilación funcionará bien sin expirar
En mi caso, estaba usando la clase "CusrsorAdapter" y en "JavaBuildPath-> Order and Export" no verifiqué el soporte V4 jar. Una vez que se seleccionó, el problema desapareció.
Para asegurarse de que no obtiene el error noClassDefFound por la razón anterior, verifique su logacat, verá un error desconocido de superclases en tiempo de ejecución.
fuente
Acutalmente ha alcanzado el infame problema del límite de 64k, necesita habilitar multidex.
Así es como lo haces. https://developer.android.com/tools/building/multidex.html
fuente
Intenté varias cosas y la razón del error en mi caso fue un conflicto entre maps.jar y Google Api en Java Build Path-> Libraries. Entonces, cuando eliminé el maps.jar funcionó bien.
Saludos,
wahib
fuente
asegúrese de que su archivo jar esté en el directorio libs de su proyecto, ya que está utilizando una versión ADT más nueva con su eclipse.
fuente
Tengo exactamente el mismo problema ... Para solucionarlo, simplemente eliminé mis Libs privadas de Android en "ruta de compilación" e hice clic en Aceptar ... y cuando abrí la "ruta de compilación" nuevamente, eclipse los había agregado nuevamente, y luego funcionó para mí;) ...
fuente
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 llevó en la dirección correcta. cuando siga la solución, recuerde reemplazar la biblioteca de soporte de Android de todos sus proyectos por la misma versión (elimínela y vuelva a instalarla en los proyectos). Espero que esto ayude, buena suerte
fuente
Si prefiere saber con qué archivos está relacionada la solución alternativa, esto es lo que encontré. Simple cambie el archivo .classpath a
Reemplace el archivo .classpath en todos los proyectos de 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 de 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 pasar por los menús de eclipse como explicó anteriormente el usuario componavt (Eclipse / Configurar ruta de compilación / Ordenar y exportar).
fuente
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 limpiarlo con gradlew.
fuente
Si cambia su orden y exporta en la ruta de compilación de su proyecto, este error no ocurrirá. La otra forma de lograrlo es a través de .classpath en la carpeta de su proyecto.
fuente
Prueba esto:-
Paso 1
Agregue todas las bibliotecas para construir pat en Eclipse (significa hacer que todas las bibliotecas hagan referencia a bibliotecas)
Paso 2
Elimine el archivo R.java y vuelva a compilar el proyecto. No te preocupes, R.java se recreará automáticamente.
Relajarse :)
fuente
Como entendí, su proyecto no muestra errores, porque incluyó el Jar. Pero el Jar no se utilizará cuando su Proyecto se "exportó" al dispositivo. Prueba esto
Proyecto -> Propiedades
Java Build Path / Ordenar y Exportar
[✔] Tu frasco
fuente
Esto me pasa muy a menudo.
La última vez que sucedió, puedo recordar que fue causada al cambiar el Eclipse ADT (edición especial de Google) a Android Studio, y volver a cambiar. Básicamente probé todos los métodos que puedo encontrar en stackoverflow que no me funcionaron.
Finalmente, conseguí que la aplicación volviera a funcionar (no más NoCalssDeffoundError) cambiando mi IDE a Eclipse original (Kepler) con ADT.
fuente