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:
libs
en la carpeta raíz de tu proyecto libs
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
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:
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:
jar
al directorio libs (como copiar / pegar) jar
derecho en el archivo jar
y seleccione “Agregar como biblioteca …” ¡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):
- Seleccione la vista del proyecto en la vista lateral del proyecto (en lugar de paquetes o Android)
- Crea una carpeta llamada libs en la carpeta raíz de tu proyecto
- Copie sus archivos JAR a la carpeta libs
- La vista lateral se actualizará y los archivos JAR se mostrarán en su proyecto
- Ahora haga clic derecho en cada archivo JAR que quiera importar y luego seleccione “Agregar como biblioteca …”, que lo incluirá en su proyecto
- 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:
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.
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.