2012-04-15 15 views
5

Por lo tanto, estoy tratando de desarrollar una aplicación cliente-servidor para Android. Para este propósito, he creado un motor, que voy a usar tanto en el servidor como en el Applecation de Android y lo exportaré como un archivo .jar.NoClassDefFoundError: Problemas con la vinculación de mi propio jar al proyecto de Android

No hubo problemas en el uso de este motor.jar en el lado del servidor (aplicación Java de fondo simple), pero tuve algunos problemas para vincular el archivo .jar de mención a mi proyecto de Android.

Para vincular engin.jar que seguir algunos pasos:

  • creado dir "libs" en mi proyecto androide
  • engine.jar importado en esta carpeta

Después de este engine.jar podría verse en el grupo Dependencias de Android. También puedo usar todas las clases de ese .jar, Eclipse no los marca como un error. Mi proyecto compila bien, pero la aplicación se bloquea cuando estoy tratando de crear cualquier objeto de engine.jar con el siguiente error:

04-15 23:18:12.885: E/AndroidRuntime(17409): java.lang.NoClassDefFoundError: Common.Message.Message

Creo que he intentado todo. ¿Alguien podría compartir sus ideas sobre la causa raíz de la situación descrita?

+0

¿Agregó el archivo jar a la ruta de compilación en Eclipse? Debería aparecer en el grupo "Bibliotecas referenciadas". – smichak

+0

@smichak en SDK Tools v18 +, las bibliotecas en la carpeta "libs" se agregan automáticamente a la ruta de compilación a través de "Dependencias de Android" –

+0

Como se dijo en el comentario anterior, "Bibliotecas referenciadas" se han cambiado a "Dependencias de Android" desde la revisión 17 SDK de Android –

Respuesta

4

Yo también tuve el mismo problema. Lo resolví de la siguiente manera:

Haga clic derecho en el directorio del proyecto ->Build Path ->Configure Build Path -> Pestaña Seleccionar Order and Export -> Comprobar/Seleccionar las casillas de verificación de los archivos en cuestión .jar -> Prensa Ok.

Espero que esto también resuelva tu problema.

+0

BOOM que parecía serlo. Muchas gracias, esta fue una verdadera emergencia. –

+0

Entonces, ¿por qué no le concedes a @Arun su recompensa? –

+0

Artem, lo intenté, pero el sistema no me lo permitió, ya que no había transcurrido el tiempo suficiente. –

0

Para uso futuro:

Crear una carpeta llamada "libs" en la raíz del proyecto y luego añadir el frasco que desea añadir y todas las cosas de exportación mencionado en el comentario anterior se realiza de forma automática.

0

Parece que su servidor y cliente no tienen el mismo jar común de clase. Al codificar las aplicaciones de servidor del cliente, debe asegurarse de que haya algún proyecto de código común, en su mayoría esto se convertirá en un archivo lib en el futuro.

Cuestiones relacionadas