Estoy usando AndroidStudio y tengo este proyecto como se muestra:
Lo que está dentro del círculo azul es myLib. myLib también necesita usar una lib externa que esté dentro del círculo rojo, y un paquete apache (círculo verde).
Así que quiero hacer que todo esto se convierta en un solo .jar, por lo que puedo usarlo en otros proyectos.
Una guía paso a paso sería muy apreciada, soy un principiante en el mundo de los desarrolladores.
¡Gracias!
Abra build.gradle para proyecto de biblioteca
Escriba dos tareas en build.gradle – deleteJar y createJar y agregue la regla createJar.dependsOn (deleteJar, build)
El código de arriba:
task deleteJar(type: Delete) { delete 'libs/jars/logmanagementlib.jar' } task createJar(type: Copy) { from('build/intermediates/bundles/release/') into('libs/jars/') include('classes.jar') rename('classes.jar', 'logmanagementlib.jar') } createJar.dependsOn(deleteJar, build)
Expande el panel de gradle desde la derecha y abre todas las tareas en yourlibrary-> others. Verá dos nuevas tareas allí: createJar y deleteJar
Haga doble clic en createJar
Una vez que la tarea se ejecuta correctamente, obtenga su jar generado de la ruta mencionada en la tarea createJar, es decir, libs / xxxx.jar
copie el archivo generado recientemente en la carpeta de lib de su proyecto requerido -> haga clic derecho -> seleccione “agregar como biblioteca”
Si configura el código como un módulo Java simple en Gradle, entonces es realmente fácil que Gradle le proporcione un archivo jar con los contenidos. Ese archivo jar solo tendrá su código, no las otras bibliotecas de Apache de las que depende. Recomiendo distribuirlo de esta manera; es un poco extraño agrupar dependencias dentro de su biblioteca, y es más normal para los usuarios de esas bibliotecas tener que incluir esas dependencias por su cuenta (porque de lo contrario hay colisiones de esos proyectos que ya están vinculando copias de la biblioteca, quizás de diferentes versiones). ) Además, evitas posibles problemas de licencia para redistribuir el código de otras personas si publicaras tu biblioteca.
Tome el código que también necesita comstackrse en un jar, y muévalo a un módulo Java simple separado en Android Studio:
Con suerte, su proyecto debería estar construyendo normalmente ahora. Después de hacer una comstackción, se colocará un archivo jar para su biblioteca Java en el directorio comstackción / libs en el directorio de su módulo. Si desea comstackr el archivo jar a mano, puede ejecutar su tarea de archivo jar build desde la ventana de Gradle:
Simplemente agregue esto a build.gradle de su módulo java. Incluirá bibliotecas dependientes en el archivo.
mainClassName = "com.company.application.Main" jar { manifest { attributes "Main-Class": "$mainClassName" } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } }
Esto dará como resultado el archivo [nombre_módulo] / build / libs / [nombre_módulo] .jar.
la forma en que encontré fue encontrar el resultado del comstackdor del proyecto (estructura del proyecto> proyecto). luego encuentre la carpeta comstackda del módulo que desea convertir en un contenedor, comprímalo con zip y cambie la extensión del resultado de zip a jar.
El archivo .jar se generará automáticamente cuando compile / ejecute su aplicación.
Puede encontrar su archivo class.jar de root_folder / app / build / intermedios / bundles / debug