Cómo crear un paquete de biblioteca de Android de lanzamiento (aar) en Android Studio (no depurar)

81

He construido mi paquete de biblioteca de Android (aar) y el resultado de la compilación se crea en la carpeta ".. \ app \ build \ outputs \ aar". El archivo dentro de esta carpeta se llama "app-debug.aar", así que supongo que se ha creado en modo de depuración, así que me gustaría saber cómo generar la versión construida, es decir, "app-release.aar". ¿Cómo puedo hacer esto? Además, ¿es posible generar la compilación con otro nombre personalizado, por ejemplo, "myCustomAppName-release.aar" en lugar de "app-release.aar".

Ralph
fuente
2
¿Ha encontrado una solución para este problema? Tengo el mismo problema y no puedo encontrar ninguna ayuda.
Belurd

Respuestas:

120

En Android Studio 1.2+, hay un gradlemenú completo que enumera todas las gradletareas disponibles .

Encontré este menú en el lado derecho del IDE con las opciones predeterminadas habilitadas.

El menú de Gradle está en el lado derecho del IDE por defecto ...

Haga clic derecho en la tarea que desee y haga clic en "Ejecutar".

Haga clic derecho en la tarea que desea y haga clic en "EJECUTAR"

Jiminikiz
fuente
1
Esto funciona para mí, pero noté que la compilación desde el menú estándar de 'compilación' también comenzó a funcionar una vez que ejecuté los comandos de grado de línea cmd sugeridos por el usuario1624552 en los comentarios para otra respuesta aquí. Sería útil si alguien que no ha ejecutado el grado de la línea de comando puede confirmar que este enfoque del menú de gradle lateral también funciona, ya que noté que la línea de comando descargó lo que parecía una nueva versión de gradle en mi caso antes de que se ejecutara y me pregunto si eso también es un paso obligatorio.
Mick
1
Por cierto, ¡¡¡bien hecho por encontrar esto !!! Si alguien de Google está mirando esto, sería bueno saber si hay algún plan para vincular / racionalizar / explicar el menú de compilación superior, este menú lateral "nuevo" de Gradle y la vista de variantes de compilación, etc.
Mick
Sí, definitivamente. Yo también ejecuté gradle desde la línea de comandos como habían sugerido las otras respuestas hasta que encontré ese menú. No estoy seguro de que sea necesario ejecutarlo desde la línea de comandos antes de usar el menú lateral ... Lo que también es interesante es que cualquier tarea que ejecutes desde el menú lateral de Gradle se convierte en la acción predeterminada "Ejecutar". Entonces, en otras palabras, el ícono de flecha verde y el menú Ejecutar apuntan a la última tarea de Gradle ejecutada. Útil :)
jiminikiz
solo una pregunta, cuando exporta archivos aar en modo de lanzamiento, ¿incluirá las últimas propiedades de proguard?
abh22ishek
1
Sí, si ejecuta la assembletarea, se aplicarán las reglas de programa que haya definido en su proyecto.
jiminikiz
10

Enfrenté este problema en AS 2.3.3 y lo resolví cambiando la variante de compilación del módulo para liberarlo y compilarlo nuevamente:

ingrese la descripción de la imagen aquí

Veneet Reddy
fuente
9

Este problema de ya se puede manejar con respuestas como ejecutar

./gradlew assembleRelease

o elija ensamblarRelease en el menú Gradle de Android Studio . Sin embargo, para completar, con Android Studio 1.5.1 (y probablemente también versiones anteriores) se puede crear la versión de lanzamiento de un .aar seleccionando Compilar -> "Compilar APK" en Android Studio . Parece ejecutar assembleRelease. Si su proyecto solo contiene el proyecto de la biblioteca, no solicita ninguna información de firma.

diidu
fuente
8

1.Agregue la siguiente secuencia de comandos a su etiqueta {} de Android en build.gradle para generar una versión de lanzamiento:

signingConfigs {
    testConfig{
        storeFile file("X:/XXXX/yourkeystore")
        storePassword "yourKeyPassword"
        keyAlias "yourAlias"
        keyPassword "yourAliasPassword"
    }
}

buildTypes{
    release {
        signingConfig  signingConfigs.testConfig
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

2. Ejecute el comando "gradle clean build" en su línea de comandos.

codezjx
fuente
Lo siento, soy un novato en el desarrollo de Android. ¿Es estrictamente necesario firmar un paquete de biblioteca de Android (aar) para obtener su salida de lanzamiento? ¿Cómo puedo generar mi propio almacén de claves?
Ralph
En mi proyecto de biblioteca, \ build \ outputs \ aar ya se genera: XX-debug.aar, XX-release.aar. ¿Y por qué necesita un archivo .arr? Si desea utilizar una biblioteca, simplemente agregue el siguiente script en su build.gradle: dependencies {compile project (': YourLibraryProject')}
codezjx
1
Quiero usar esta biblioteca en mis aplicaciones de Android en el futuro. Esta es una biblioteca y quiero obtener su salida de lanzamiento, pero no entiendo por qué, pero obtengo solo XX-debug.aar y no XX-release.aar en la carpeta "\ app \ build \ outputs \ aar" de mi biblioteca.
Ralph
5
Desde una ventana de terminal, una vez en la carpeta del proyecto, he ejecutado los siguientes comandos: "./gradlew clean" y "./gradlew aR" y ahora "XX-release.aar" se genera en ".. \ app \ build \ Carpeta salidas \ aar ". ¿Cómo puedo hacer lo mismo desde Android Studio? es decir, para decirle a Android Studio que también monte la versión.
Ralph
1
Normalmente, todo lo que necesita hacer es construir el proyecto en Android Studio, pero tengo este mismo problema en un par de aplicaciones. Entonces hacerlo en la terminal es la única solución.
CodyMace
8

Con Android Studio 3.0 es más fácil generar archivos aar. Desde la opción Gradle, marque la opción como se muestra en la imagen ingrese la descripción de la imagen aquí

leeCoder
fuente
En mi proyecto no puedo ver la opción de lanzamiento de ensamblar.
Gyan Swaroop Awasthi
cuando importo mi versión .aar lib en un proyecto, aparece un error como "AAPT: error: atributo ... no encontrado" @leeCoder
Shomu
4

Puedes usar la línea de comando

./gradlew <moduleName>:assemble

./gradlew <moduleName>:assemble<build_variant>
//for example
./gradlew <moduleName>:assembleRelease

//or
./gradlew <moduleName>:bundle<build_variant>Aar
//for example
./gradlew <moduleName>:bundleReleaseAar
//output is located
<project_path>/build/outputs/aar/<module_name>-<build_variant>.aar

Alternativamente, puede usar la interfaz de usuario de AndroidStudio

View -> Tool Windows -> Gradle
<module_name> -> Tasks -> build or others -> assembleRelease

yoAlex5
fuente
¿Cuál es la diferencia entre ./gradlew <moduleName>:assemble<build_variant>y ./gradlew <moduleName>:bundle<build_variant>Aar?
rupesh
3

Configure su proyecto como una biblioteca de Android
En el build.gradlearchivo: plugin: 'com.android.library'
Puede ver el resultado en: build/outputs/aar/[your module].
Vea también este enlace

NickF
fuente
3

Sin embargo, otra pregunta de 2 partes donde nadie responde la segunda parte ...

Para las generaciones futuras, aquí hay respuestas simples:

Parte 1 ¿Cómo crear una versión única *release.aar?

Ejecutar en Android Studio terminal(o cualquier terminal en la carpeta de su proyecto):

./gradlew assembleRelease

No necesita firmar la configuración para tal tarea.

Parte 2 ¿Cómo cambiar el nombre de la biblioteca de salida a AnotherLibraryName-release.aar?

Agregue a su módulo gradle.build:

android{
    project.archivesBaseName = "AnotherLibraryName"
}
lukassos
fuente
0

para mí, simplemente corrigiendo un error de diseño en la biblioteca que no produjo un error de compilación (falta el complemento androidx) lo solucionó y <lib>-release.aarapareció junto a la carpeta <lib>-debug.aarin build/outputs/aar/.

Joe
fuente