error - classpath java linux
NoClassDefFoundError-Eclipse y Android (27)
A veces ocurrirá 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 "application".
Saludos,
Ravi
Estoy teniendo un problema al intentar ejecutar una aplicación de Android que, hasta agregar una segunda biblioteca externa a su ruta de compilación, estaba funcionando bien. Desde que agregué el archivo 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 construcción son generados por las herramientas de Android (?), No estoy seguro de qué otra cosa puedo hacer aparte de limpiar y reconstruir o reiniciar Eclipse (ya he probado los tres). ¿Alguien sabe cómo puedo enmendar esto?
Al agregar el jar externo a su ruta de compilación, solo agregue el jar a su paquete, pero no estará disponible durante el tiempo de ejecución.
Para que el frasco esté disponible en tiempo de ejecución , debe:
- Pon el frasco debajo de tu carpeta de
assets
- Incluye esta copia del tarro en tu 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
Como lo 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 / Order and Export
[✔] Tu jarra
En realidad, ha alcanzado el infame problema del límite de 64k, debe habilitar multidex.
Así es como lo haces. https://developer.android.com/tools/building/multidex.html
Esto me sucede muy a menudo.
La última vez que sucedió lo que recordé fue causada por cambiar el Eclipse ADT (edición especial de Google) a Android Studio y volver a cambiar. Básicamente probé todos los métodos que encontré en que no funcionaron para mí.
Finalmente, conseguí que la aplicación volviera a funcionar (no más NoCalssDeffoundError) cambiando mi IDE a Eclipse original (Kepler) con ADT.
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 vea. Esto ha funcionado para mí.
He cambiado el orden de los proyectos incluidos (Eclipse / Configurar Build Path / Order and Export). 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 :)
Intenté todo desde esta publicación (y algunas otras), y no funcionó para mí. Esta es, con mucho, la actualización ADT más terrible que he experimentado, y nunca la actualizaré 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.
John O''Connor tiene razón con el tema. El problema sigue 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
La solución here funcionó para mí. Es una cuestión de importar la biblioteca a la carpeta libs, luego modificar el archivo build.gradle y luego limpiar con gradlew.
Lo mismo funcionó para mí: Propiedades -> Java Build Path -> "Order and Export" Interesantemente, ¿por qué esto no se hace automáticamente? Supongo que falta algún ajuste. También esto me pasó después de la actualización del SDK.
Me he encontrado con el mismo problema. La razón era que la biblioteca que estaba tratando de usar había sido compilada con un JDK 7 estándar.
Lo -source 1.6 -target 1.6
con las -source 1.6 -target 1.6
y funcionó bien.
No estoy seguro de si esto está relacionado, o si aún está buscando una respuesta, pero encontré 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. Selecciona tu proyecto y Eclipse parece arreglarlo por sí mismo. Para mí esto solucionó el problema.
Espero que esto ayude.
No tuve que poner la biblioteca de archivos jar en recursos o lib (s), sino que solo tenía que marcar la casilla de este archivo en Propiedades -> Java Build Path -> "Order and Export" (estaba ordenado anteriormente, pero no estaba seleccionado )
Pasé dos días tratando de resolver este problema después de actualizar ADT. Finalmente tuve la suerte de obtener este post aquí:
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 a la misma versión (elimínela y vuelva a instalarla en los proyectos). Espero que esto ayude, buena suerte
Probé varias cosas y la razón del error en mi caso fue el conflicto entre maps.jar y Google Api en Java Build Path-> Libraries. Entonces, cuando quité el maps.jar funcionó bien.
Saludos,
wahib
Prueba esto:-
Paso 1
Agregue todas las bibliotecas para crear pat en Eclipse (significa que todas las bibliotecas hacen referencia a las bibliotecas)
Paso 2
Elimine el archivo R.java y vuelva a construir el proyecto. No te preocupes, R.java se recreará automáticamente.
Chill :)
Si cambia su orden y exporta en la ruta de compilación de su proyecto, este error no se producirá. La otra forma de lograrlo es a través de .classpath en la carpeta de su proyecto.
Si prefiere saber con qué archivos está relacionada la solución, esto es lo que encontré. Simplemente cambia 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 la biblioteca y en el proyecto principal de Android. El archivo .classpath está en la carpeta raíz del proyecto Eclipse. Por alguna razón, no olvide agregar sus propias entradas de classpath, si tiene alguna (compare con su versión actual de .classpath).
Creo que este es el mismo resultado que al pasar por los menús de eclipse como componavt-user explicado anteriormente (Eclipse / Configurar Build Path / Order and Export).
Tenía esto para MapActivity. Las compilaciones en Eclipse obtienen NoClassDefFound en el depurador.
Se olvidó de agregar la biblioteca para manifestar, dentro del elemento <Application>...</Application>
<uses-library android:name="com.google.android.maps" />
Tengo exactamente el mismo problema ... Para solucionarlo, acabo de quitar mis Android Private Libs en "construir ruta" y hacer clic en Aceptar ... y cuando abrí de nuevo la "ruta de construcción", eclipse los había agregado de nuevo. y luego funcionó para mí;) ...
Todas las respuestas existentes no funcionan para mí porque mi caso es un poco diferente. Tardé unas horas en 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 se compile (solo), no lo marque 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 como el mío.
Tuve este mismo error con ADT22. Se resolvió revisando "Bibliotecas privadas de Android" en propiedades -> Java build path -> Order and export. Si está utilizando algún proyecto de biblioteca, lo mismo debería hacerse para ellos también.
Tuve este problema después de actualizar ADT.
Estaba almacenando todos mis archivos JAR en una carpeta llamada "lib" y agregando los archivos jar 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, recibí el NoClassDefFoundError para una clase que pude ver claramente que estaba incluido en el archivo (revisando las clases de ReferencedLibraries).
La solución fue eliminar mis archivos jar 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 las bibliotecas en un archivo .apk. Una vez que hice esto, todo funcionó bien.
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 tiempo de compilación de APK.Funcionará bien sin exportar
En mi caso, estaba usando la clase "CusrsorAdapter" y en "JavaBuildPath-> Order and Export" No verifiqué la compatibilidad con V4 jar. Una vez seleccionado, el problema desapareció.
Para asegurarse de que está obteniendo el error noClassDefFound debido a la razón anterior, verifique su logacat, verá un error de súper clase desconocido en el tiempo de ejecución.
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.
a veces hay que tomar todo el proyecto externo como biblioteca y no solo el archivo jar:
mi problema se resolvió agregando todo el proyecto (en mi caso google-play-services_lib) como biblioteca y no solo el archivo jar. Los pasos para hacerlo (desde la respuesta @style ):
- Archivo-> Nuevo-> Otro
- Seleccione el proyecto de Android
- Seleccione "Crear proyecto de fuente existente"
- Haga clic en el botón "Examinar ..." y navegue hasta el proyecto deseado
- Finalizar (ahora proyecto de barra de acción en tu espacio de trabajo)
- Haga clic derecho en su proyecto -> Propiedades
- En Android-> sección Biblioteca haga clic en Agregar
- Seleccione el proyecto recientemente agregado -> Ok