¿Cómo puedo usar JAR externos en un proyecto de Android?

Creé un proyecto de Android y agregué un JAR externo (hessian-4.0.1.jar) a mi proyecto. Luego agregué el JAR a la ruta de comstackción y lo marqué en Ordenar y Exportar.

Order and Export se ignora, parece, y todas las clases del JAR externo faltan en el tiempo de ejecución.

¿Hay algún truco para incluir correctamente las clases necesarias de un JAR externo al crear una aplicación de Android utilizando el plugin de Eclipse? No quiero usar ant o Maven.

Para Eclipse

Una buena forma de agregar archivos JAR externos a su proyecto de Android o cualquier proyecto de Java es:

  1. Crea una carpeta llamada libs en la carpeta raíz de tu proyecto
  2. Copie sus archivos JAR a la carpeta libs
  3. Ahora haz clic derecho en el archivo Jar y luego selecciona Build Path> Add to Build Path , que creará una carpeta llamada ‘Referenced Libraries’ dentro de tu proyecto.

    Al hacer esto, no perderá sus bibliotecas que están siendo referenciadas en su disco duro cada vez que transfiera su proyecto a otra computadora.

Para Android Studio

  1. Si estás en Android View en el explorador de proyectos, cámbialo a la vista del proyecto como se muestra a continuación

enter image description here

  1. Haga clic con el botón derecho en el módulo deseado donde desea agregar la biblioteca externa, luego seleccione Nuevo> Directroy y asígnele el nombre de ‘ libs
  2. Ahora copia el archivo blah_blah.jar en la carpeta ‘ libs
  3. Haga clic derecho en blah_blah.jar, luego seleccione ‘ Agregar como biblioteca .. ‘. Esto agregará automáticamente una entrada en build.gradle como archivos de comstackción (‘libs / blah_blah.jar’) y sincronizará el gradle. Y has terminado

Tenga en cuenta: si está utilizando bibliotecas de terceros, entonces es mejor usar dependencias transitivas donde el script de Gradle descarga automáticamente el JAR y el JAR de dependencia cuando se ejecuta el script de Gradle.

Ejemplo: comstackr ‘com.google.android.gms: play-services-ads: 9.4.0’

Leer más sobre Gradle Dependency Mangement

Sí, puedes usarlo. Aquí es cómo:

  1. Su proyecto -> clic derecho -> Importar -> Sistema de archivos -> yourjar.jar
  2. Su proyecto -> clic derecho -> Propiedades -> Ruta de comstackción Java -> Bibliotecas -> Agregar jar -> sujar.jar

Este video puede ser útil en caso de que tengas algunos problemas.

Actualmente estoy usando SDK 20.0.3 y ninguna de las soluciones anteriores funcionó para mí.

La razón por la que hessdroid funciona donde hess falló es porque los dos archivos jar contienen java que se comstack para diferentes máquinas virtuales. No se garantiza que el código de bytes creado por el comstackdor Java se ejecute en la máquina virtual Dalvik. No se garantiza que el código de bytes creado por el comstackdor de Android se ejecute en la máquina virtual Java.

En mi caso, tuve acceso al código fuente y pude crear un archivo jar Android usando el método que describí aquí: https://stackoverflow.com/a/13144382/545064

Sé que el OP termina su pregunta con referencia al plugin de Eclipse, pero llegué aquí con una búsqueda que no especificaba Eclipse. Así que aquí va para Android Studio:

  1. Agregue el archivo jar al directorio libs (como copiar / pegar)
  2. Haga clic con el jar derecho en el archivo jar y seleccione “Agregar como biblioteca …”
  3. haga clic en “Aceptar” en el siguiente cuadro de diálogo o renómbrelo si lo desea.

¡Eso es!

Resulta que no me he visto lo suficientemente bien en mi rastro de stack, el problema no es que el JAR externo no está incluido.

El problema es que la plataforma Android no tiene javax.naming. * Y muchos otros paquetes que el JAR externo también tiene dependencias.

Agregar archivos JAR externos y configurar Order and Export en Eclipse funciona como se espera con los proyectos de Android.

Ir al proyecto actual

RightClick-> Propiedades-> Java Build Path-> Añadir archivos jar en las bibliotecas -> Hacer clic en Aceptar

Luego se agrega al archivo de bibliotecas referenciadas en su proyecto actual.

La API Java de Android no admite javax.naming. * Y muchas otras cosas javax. *. Debe incluir las dependencias como archivos jar por separado.

Si usa Android Studio, haga lo siguiente (he copiado y modificado @Vinayak Bs respuesta):

  1. Seleccione la vista del proyecto en la vista lateral del proyecto (en lugar de paquetes o Android)
  2. Crea una carpeta llamada libs en la carpeta raíz de tu proyecto
  3. Copie sus archivos JAR a la carpeta libs
  4. La vista lateral se actualizará y los archivos JAR se mostrarán en su proyecto
  5. Ahora haga clic derecho en cada archivo JAR que quiera importar y luego seleccione “Agregar como biblioteca …”, que lo incluirá en su proyecto
  6. Después de eso, todo lo que necesita hacer es hacer referencia a las nuevas clases en su código, por ej. import javax.mail.*

en el estudio de Android si usa gradle

agregar esto a build.gradle

 compile fileTree(dir: 'libs', include: ['*.jar']) 

y agregue el archivo jar a la carpeta libs

Si está utilizando el sistema de comstackción Gradle , siga estos pasos:

  1. poner archivos jar dentro de la respectiva carpeta libs de su aplicación de Android. Generalmente lo encontrará en Project > app > libs . Si falta la carpeta libs , crea una.

  2. agregue esto a su archivo build.gradle su app . (No a build.gradle su Project )

     dependencies { compile fileTree(dir: 'libs', include: '*.jar') // other dependencies } 

    Esto incluirá todos sus archivos jar disponibles en la carpeta libs .

Si no desea incluir todos los archivos jar , puede agregarlo individualmente.

compile fileTree(dir: 'libs', include: 'file.jar')

crea una carpeta (como lib) dentro de tu proyecto, copia tu jar a esa carpeta . Ahora ve a configurar la ruta de comstackción desde el botón derecho del mouse en el proyecto, allí en la ruta de comstackción selecciona

‘add jar’ navega a la carpeta que creaste y elige el jar.

Copiar el archivo .jar en la carpeta del proyecto Android no siempre es posible.
Especialmente si se trata de un resultado de otro proyecto en su área de trabajo, y sigue actualizándose.

Para solucionar esto, deberá agregar el jar como un archivo vinculado a su proyecto, en lugar de importarlo (lo que lo copiará localmente).

En la interfaz de usuario, elija:

Proyecto -> Importar -> Sistema de archivos -> yourjar.jar -> (Área de opciones) Avanzado -> Crear enlace en el área de trabajo.

El enlace se guarda en el archivo .project :

   yourjar.jar 1 PARENT-5-PROJECT_LOC/bin/android_ndk10d_armeabi-v7a/yourjar.jar   

PARENT-5-PROJECT_LOC significa relativo al archivo del proyecto, 5 directorios arriba (../../../../../).

Luego agréguelo a las bibliotecas:
Proyecto -> Propiedades -> Ruta de creación de Java -> Bibliotecas -> Agregar tarro -> tujar.jar

En la misma ventana, elija la pestaña Ordenar y Exportar y marque su jar para que se agregue a la aplicación.