Compile la aplicación Android Studio a través de la línea de comandos

136

Quiero compilar una aplicación de Android Studio (el sistema de compilación Gradle), pero quiero hacerlo a través de la línea de comandos.

B. Nadolson
fuente
66
Por ejemplo ./gradlew assembleRelease, ./gradlew assembleDebug
Gabriele Mariotti
Si tiene múltiples variantes de compilación, entonces debería ir ./gradlew assembleYourVariantRelease
Michał Dobi Dobrzański

Respuestas:

190

Android Studio crea automáticamente un contenedor de Gradle en la raíz de su proyecto, que es cómo invoca a Gradle. El contenedor es básicamente una secuencia de comandos que llama al binario real de Gradle y le permite mantener actualizado a Gradle, lo que facilita el uso del control de versiones. Para ejecutar un comando Gradle, simplemente puede usar el gradlewscript que se encuentra en la raíz de su proyecto (o gradlew.baten Windows) seguido del nombre de la tarea que desea ejecutar. Por ejemplo, para crear una versión de depuración de su aplicación de Android, puede ejecutarla ./gradlew assembleDebugdesde la raíz de su repositorio. En una configuración de proyecto predeterminada, el apk resultante se puede encontrar en app/build/outputs/apk/app-debug.apk. En una máquina * nix, también puede simplemente correr find . -name '*.apk'para encontrarla, si no está allí.

FuegoFro
fuente
36
Me llevó más de 2 horas comprender cuál es la forma correcta de ejecutar Gradle desde la línea de comandos
Oded Regev
44
Ejecuté esto desde la línea de comandos c:\path_to_my_app\gradlew.bat ./gradlew assemblyDebugy me mostró Descargando services.gradle.org/distributions/gradle-2.10-all.zip . Y está atascado allí. ¿Qué extraño?
Saeed Neamati
También puede instalar la aplicación con ./gradlew installArm7Debug. Otras tareas son fáciles de encontrar./gradlew tasks
Andreas Løve Selvik
1
Compilé el proyecto y lo cargué en el dispositivo Android usando ./gradlew assembleDebugy ./gradlew installDebugcomandos. En AndroidStudio hay una consola que monitorea todas las actividades del dispositivo Android en tiempo real (por ejemplo, si el dispositivo Android falla, la consola imprime el rastro de excepción). ¿Cómo obtener esta instalación de monitoreo en una terminal?
mercury0114
Cómo evitar que el gradle descargue -> Descarga services.gradle.org/distributions/gradle-2.xyz-all.zip. Noté que Gradle construye bien el proyecto de Android, pero en la línea de comando hay un problema de configuración de proxy. Se puede resolver colocando los ajustes de proxy (pero en este momento no tengo ese privilegio) pero solo quiero omitir la descarga ... ¿Cómo puedo hacer eso?
Raulp
24

Pruebe esto (solo OS X):

brew install homebrew/versions/gradle110
gradle build

Puede usar gradle taskspara ver todas las tareas disponibles para el proyecto actual. No Android Studiose necesita aquí.

superarts.org
fuente
44
¡Para empezar, asegúrate de tener homebrew instalado!
amitavk
1
"no se necesita Android Studio", a menos que necesite el SDK de Android, supongo. En cualquier caso, el proyecto que intento construir sí lo solicita.
hmijail llora a los despedidos el
21

existen dos tipos de compilación para compilar su aplicación utilizando la configuración de compilación de Gradle: una para depurar su aplicación, depurar, y otra para compilar su paquete final para el modo de lanzamiento.

Construyendo en modo de depuración

  • Primero navegue a la carpeta raíz del proyecto de estudio de Android usando CMD ingrese la descripción de la imagen aquí

  • ejecuta este comando gradlew.bat assembleDebug

  • La ventana de salida se ve así ingrese la descripción de la imagen aquí

Construir apk firmado en modo de lanzamiento

  • Edite el archivo build.gradle para construir su proyecto en modo de lanzamiento:

    android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            storeFile file("myreleasekey.keystore")
            storePassword "password"
            keyAlias "MyReleaseKey"
            keyPassword "password"
        }
    }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release
        }
    }}
    

ingrese la descripción de la imagen aquí

  • ejecuta este comando gradlew.bat assembleRelease

Hecho ¡Buena suerte!

Dhaval Jivani
fuente
2
¿Hay alguna forma de iniciar automáticamente la aplicación después de compilar correctamente?
Ambar Jain
No puedo encontrar ninguna forma de iniciar automáticamente la aplicación después de la compilación
Dhaval Jivani
3
@DhavalJivani, ¿lo lanzas en un emulador? Si es así, son simples comandos adb. Incluso puede orientar una actividad específica para iniciar. developer.android.com/studio/command-line/adb.html
blizz
@DhavalJivani, ¿cuál es la mejor manera de probar la aplicación de Android en las pruebas de automatización? En cuanto a la web, tenemos selenio en python y node.
Harsh Manvar
9

Este es un intento de una guía completa

1. Instale Gradle y el SDK de Android

Ya sea

  • Instale estos como mejor le parezca
  • Ejecutar ./gradlew, o gradlew.batsi está en Windows
    • chmod +x ./gradlew puede ser necesario

A partir de este momento, se gradlerefiere a ejecutar Gradle de cualquier forma que haya elegido. Sustituir en consecuencia.

2. Configure el SDK de Android

  • Si ha instalado manualmente el SDK

    • export ANDROID_HOME=<install location>
    • Es posible que desee poner eso en su ~/.profilesi no se hace automáticamente
  • Acepta las licencias: yes | sdkmanager

    • sdkmanager puede encontrarse en $ANDROID_HOME/tools/bin
    • sdkmanager puede tener que ejecutarse como root
  • Intenta correr gradle

    • Si hay quejas sobre licencias o SDK que no se encuentran, arregle los permisos del directorio
      • chown -R user:group $ANDROID_HOME
      • Si eres imprudente y / o el único usuario: chmod 777 -R $ANDROID_HOME

3. Edificio

  • gradle tasks enumera todas las tareas que se pueden ejecutar
  • :app:[appname] es el prefijo de todas las tareas, que verás en los registros de Gradle cuando construyas
    • Esto se puede excluir al ejecutar una tarea

Algunas tareas esenciales

  • gradle assemble: crea todas las variantes de tu aplicación
    • Los .apks resultantes están en app/[appname]/build/outputs/apk/[debug/release]
  • gradle assembleDebugo assembleRelease: cree solo las versiones de depuración o lanzamiento
  • gradle installDebugo installReleasecompilar e instalar en un dispositivo conectado
    • Tener adb instalado
    • Conecte un dispositivo con depuración USB y transferencia de archivos USB habilitada
    • Ejecute adb devices, verifique que su dispositivo esté en la lista y que el dispositivo esté al lado

Construir e instalar automáticamente ante cambios

Esto evita tener que ejecutar continuamente los mismos comandos

gradle -t --continue installDebug
  • -t: también conocido como --continuous, automáticamente vuelve a ejecutar la tarea después de cambiar un archivo
  • --continue: Continuar después de errores. Evita detenerse cuando ocurren errores

Corre gradle -hpor más ayuda

williamvds
fuente
8

¡Probablemente estés aquí porque también quieres instalarlo!

Construir

gradlew

(En Windows gradlew.bat)

Luego instalar

adb install -r exampleApp.apk

(Esto -rhace que reemplace la copia existente, agregue una -ssi se instala en un emulador)

Prima

Configuré un alias en mi ~/.bash_profile, para que sea un comando 2char.

alias bi="gradlew && adb install -r exampleApp.apk"

(Abreviatura de construir e instalar)

Gibolt
fuente
7

Cheatsheet para ejecutar Gradle desde la línea de comandos para proyectos de Android Studio en Linux:

cd <project-root>
./gradlew
./gradlew tasks
./gradlew --help

Debería empezar ...

bph
fuente
3

Para Mac usa este comando

  ./gradlew task-name
Vji
fuente
1

Solo para usuarios de MAC

Extendiendo la respuesta de Vji .

Procedimiento paso a paso:

  1. Terminal abierta
  2. Cambie su directorio a su proyecto (cd PathOfYourProject)
  3. Copie y pegue este comando y presione enter:

    chmod +x gradlew
    
  4. Como sugirió Vji :

    ./gradlew task-name
    

    NO OLVIDES AGREGAR. (PUNTO) ANTES / gradlew

Naveen Kumawat
fuente
1

La documentación oficial está aquí:

Para crear un APK de depuración, abra una línea de comando y navegue hasta la raíz del directorio de su proyecto. Para iniciar una compilación de depuración, invoque la assembleDebugtarea:

gradlew assembleDebug

Esto crea un APK nombrado module_name-debug.apken project_name/module_name/build/outputs/apk/.

Muhammad Usman
fuente
0

enter code hereCrear archivo de secuencia de comandos con el siguiente comando gradle y adb, Ejecutar archivo de secuencia de comandos

./gradlew clean

./gradlew assembleDebug ./gradlew installDebug

adb shell am start -n applicationID / ruta completa de la actividad del iniciador

usuario2851150
fuente
0

tenga en cuenta que también puede hacer esto dentro de Android Studio haciendo clic en la ventana de gradle y luego en el botón 'elefante'. Esto abrirá una nueva ventana llamada "ejecutar cualquier cosa" (también se puede encontrar buscando ese nombre en 'buscar en todas partes') donde puede escribir manualmente cualquier comando de gradle que desee. No es una línea de comando "bastante", pero a menudo proporciona más de lo que necesito que la línea de comandos de Windows.

Esto le permite dar parámetros opcionales para tareas de gradle, etc.

mawalker
fuente
-2

Agregando valor a todas estas respuestas,

muchos han pedido el comando para ejecutar la aplicación en AVD después de la compilación correcta.

adb install -r {path-to-your-bild-folder}/{yourAppName}.apk
AbhinayMe
fuente