Crie o aplicativo Android Studio via linha de comando

136

Quero criar um aplicativo Android Studio (o sistema de compilação Gradle), mas quero fazer isso por meio da linha de comando.

B. Nadolson
fonte
6
Por exemplo ./gradlew assembleRelease, ./gradlew assembleDebug
Gabriele Mariotti
Se você tiver várias variantes de compilação, deverá ./gradlew assembleYourVariantRelease
Michał Dobi Dobrzański

Respostas:

190

O Android Studio cria automaticamente um wrapper Gradle na raiz do seu projeto, e é assim que ele chama o Gradle. O wrapper é basicamente um script que chama o binário Gradle real e permite que você mantenha o Gradle atualizado, o que facilita o uso do controle de versão. Para executar um comando Gradle, você pode simplesmente usar o gradlewscript encontrado na raiz do seu projeto (ou gradlew.batno Windows), seguido pelo nome da tarefa que deseja executar. Por exemplo, para criar uma versão de depuração do seu aplicativo Android, você pode executar a ./gradlew assembleDebugpartir da raiz do seu repositório. Em uma configuração padrão do projeto, o apk resultante pode ser encontrado em app/build/outputs/apk/app-debug.apk. Em uma máquina * nix, você também pode executar find . -name '*.apk'para encontrá-la, se não estiver lá.

FuegoFro
fonte
36
Levei mais de 2 horas para entender o que é a maneira correta para executar Gradle a partir da linha de comando
Oded Regev
4
Eu executei isso na linha de comando c:\path_to_my_app\gradlew.bat ./gradlew assemblyDebuge ele me mostrou Fazendo o download de services.gradle.org/distributions/gradle-2.10-all.zip . E está preso lá. Do que sinto falta?
Saeed Neamati
Você também pode instalar o aplicativo com ./gradlew installArm7Debug. Outras tarefas são fáceis de encontrar./gradlew tasks
Andreas Løve Selvik
1
Compilei o projeto e enviei-o para o dispositivo Android usando ./gradlew assembleDebuge ./gradlew installDebugcomandos. No AndroidStudio, há um console que monitora todas as atividades do dispositivo Android em tempo real (por exemplo, se o dispositivo Android travar, o console imprime o rastreamento de exceção). Como obter esse recurso de monitoramento em um terminal?
mercury0114
Como impedir que o gradle faça o download do -> Download de services.gradle.org/distributions/gradle-2.xyz-all.zip. Notei que o gradle constrói o projeto android muito bem, mas na linha de comando há um problema de configuração de proxy. Isso pode ser resolvido colocando as configurações de proxy (mas agora eu não tenho esse privilégio), mas só quero ignorar a coisa do download ... Como posso fazer isso?
Raulp 19/02/19
24

Tente isso (apenas OS X):

brew install homebrew/versions/gradle110
gradle build

Você pode usar gradle taskspara ver todas as tarefas disponíveis para o projeto atual. Não Android Studioé necessário aqui.

superarts.org
fonte
4
Certifique-se de ter o homebrew instalado para começar!
Amitavk
1
"não é necessário o Android Studio" - a menos que você precise do SDK do Android, eu acho. De qualquer forma, o projeto que estou tentando construir o exige.
hmijail lamenta os demitidos
21

existem dois tipos de compilação para compilar seu aplicativo usando as configurações de compilação Gradle: uma para depurar seu aplicativo - debug - e outra para compilar seu pacote final para o modo release-release.

Criando no modo de depuração

  • Primeiro, navegue até a pasta Raiz do projeto do Android studio usando CMD insira a descrição da imagem aqui

  • execute este comando gradlew.bat assembleDebug

  • A janela de saída fica assim insira a descrição da imagem aqui

Construa apk assinado no Modo de Liberação

  • Edite o arquivo build.gradle para criar seu projeto no modo de liberação:

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

insira a descrição da imagem aqui

  • execute este comando gradlew.bat assembleRelease

Boa sorte!

Dhaval Jivani
fonte
2
Existe uma maneira de iniciar o aplicativo automaticamente após a compilação bem-sucedida?
Ambar Jain
Não consigo encontrar alguma maneira de aplicativo auto lançamento após construção
Dhaval Jivani
3
@DhavalJivani lançá-lo em um emulador que você quer dizer? Nesse caso, são apenas simples comandos adb. Você pode até segmentar uma atividade específica para iniciar. developer.android.com/studio/command-line/adb.html
blizz
@DhavalJivani, qual é a melhor maneira de testar o aplicativo Android em testes de automação ?. Quanto à web, temos selênio em python e node.
Harsh Manvar 17/11/19
9

Esta é uma tentativa de um guia completo

1. Instale o Gradle e o Android SDK

Ou

  • Instale-os como achar melhor
  • Executar ./gradlewou gradlew.batse estiver no Windows
    • chmod +x ./gradlew pode ser necessário

A partir deste ponto, gradlerefere-se à execução do Gradle da maneira que você escolher. Substitua em conformidade.

2. Configure o Android SDK

  • Se você instalou manualmente o SDK

    • export ANDROID_HOME=<install location>
    • Você pode colocar isso no seu ~/.profilese não for feito automaticamente
  • Aceite as licenças: yes | sdkmanager

    • sdkmanager pode ser encontrado em $ANDROID_HOME/tools/bin
    • sdkmanager pode ter que ser executado como root
  • Tente correr gradle

    • Se houver reclamações sobre licenças ou SDKs não encontrados, corrija as permissões de diretório
      • chown -R user:group $ANDROID_HOME
      • Se você é imprudente e / ou o único usuário: chmod 777 -R $ANDROID_HOME

3. Edifício

  • gradle tasks lista todas as tarefas que podem ser executadas
  • :app:[appname] é o prefixo de todas as tarefas, que você verá nos logs do Gradle ao criar
    • Isso pode ser excluído ao executar uma tarefa

Algumas tarefas essenciais

  • gradle assemble: crie todas as variantes do seu aplicativo
    • Os .apks resultantes estão em app/[appname]/build/outputs/apk/[debug/release]
  • gradle assembleDebugou assembleRelease: construa apenas as versões de depuração ou lançamento
  • gradle installDebugou installReleaseconstruir e instalar em um dispositivo conectado
    • adb instalado
    • Conecte um dispositivo com a depuração USB e a transferência de arquivos USB ativadas
    • Executar adb devices, verifique se o seu dispositivo está listado e se o dispositivo está ao lado

Construir e instalar automaticamente mediante alterações

Isso evita ter que executar continuamente os mesmos comandos

gradle -t --continue installDebug
  • -t: aka --continuous, executa novamente a tarefa automaticamente depois que um arquivo é alterado
  • --continue: Continue após erros. Impede a parada quando ocorrem erros

Corra gradle -hpara obter mais ajuda

williamvds
fonte
8

Você provavelmente está aqui porque deseja instalá-lo também!

Construir

gradlew

(No Windows gradlew.bat)

Então instale

adb install -r exampleApp.apk

( -rIsso faz com que substitua a cópia existente, adicione um -sse estiver instalando em um emulador)

Bônus

Eu configurei um alias no meu ~/.bash_profile, para torná-lo um comando 2char.

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

(Abreviação de Build and Install)

Gibolt
fonte
7

Cheatsheet para executar o Gradle na linha de comando dos projetos do Android Studio no Linux:

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

Deve começar ..

bph
fonte
3

Para Mac, use este comando

  ./gradlew task-name
Vji
fonte
1

Somente para usuários MAC

Estendendo a resposta de Vji .

Procedimento passo a passo:

  1. Terminal Aberto
  2. Altere seu diretório para seu projeto (cd PathOfYourProject)
  3. Copie e cole este comando e pressione Enter:

    chmod +x gradlew
    
  4. Como Vji sugeriu:

    ./gradlew task-name
    

    NÃO ESQUEÇA DE ADICIONAR (PONTO) ANTES / gradlew

Naveen Kumawat
fonte
1

A documentação oficial está aqui:

Para criar um APK de depuração, abra uma linha de comando e navegue até a raiz do diretório do projeto. Para iniciar uma compilação de depuração, chame a assembleDebugtarefa:

gradlew assembleDebug

Isso cria um APK chamado module_name-debug.apkem project_name/module_name/build/outputs/apk/.

Muhammad Usman
fonte
0

enter code hereCrie um arquivo de script com o comando abaixo gradle e adb, Executar arquivo de script

./gradlew clean

./gradlew assembleDebug ./gradlew installDebug

shell adb am start -n applicationID / caminho completo da atividade do iniciador

user2851150
fonte
0

observe, você também pode fazer isso no Android Studio clicando na janela gradle e depois no botão 'elefante'. Isso abrirá uma nova janela chamada "executar qualquer coisa" (também pode ser encontrada pesquisando esse nome em 'pesquisar em todos os lugares'), onde você pode digitar manualmente qualquer comando gradle que desejar. Não é a linha de comando "bastante", mas geralmente fornece mais do que eu preciso do que a linha de comando do Windows.

Isso permite que você forneça parâmetros opcionais para classificar tarefas, etc.

mawalker
fonte
-2

Agregando valor a todas essas respostas,

muitos pediram o comando para executar o aplicativo no AVD após a compilação bem-sucedida.

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