Créer une application Android Studio via la ligne de commande

136

Je souhaite créer une application Android Studio (le système de génération Gradle), mais je souhaite le faire via la ligne de commande.

B. Nadolson
la source
6
Par exemple ./gradlew assembleRelease, ./gradlew assembleDebug
Gabriele Mariotti
Si vous avez plusieurs variantes de construction, alors vous devriez aller ./gradlew assembleYourVariantRelease
Michał Dobi Dobrzański

Réponses:

190

Android Studio crée automatiquement un wrapper Gradle à la racine de votre projet, c'est ainsi qu'il appelle Gradle. L'encapsuleur est essentiellement un script qui appelle le binaire Gradle réel et vous permet de garder Gradle à jour, ce qui facilite l'utilisation du contrôle de version. Pour exécuter une commande Gradle, vous pouvez simplement utiliser le gradlewscript qui se trouve à la racine de votre projet (ou gradlew.batsous Windows) suivi du nom de la tâche que vous souhaitez exécuter. Par exemple, pour créer une version de débogage de votre application Android, vous pouvez l'exécuter à ./gradlew assembleDebugpartir de la racine de votre référentiel. Dans une configuration de projet par défaut, l'apk résultant peut alors être trouvé dans app/build/outputs/apk/app-debug.apk. Sur une machine * nix, vous pouvez également simplement exécuter find . -name '*.apk'pour le trouver, s'il n'y est pas.

FuegoFro
la source
36
Il m'a fallu plus de 2 heures pour comprendre quelle était la bonne façon d'exécuter Gradle à partir de la ligne de commande
Oded Regev
4
J'ai exécuté ceci à partir de la ligne de commande c:\path_to_my_app\gradlew.bat ./gradlew assemblyDebug, et cela m'a montré Téléchargement de services.gradle.org/distributions/gradle-2.10-all.zip . Et c'est coincé là-bas. Qu'est-ce que je manque?
Saeed Neamati
Vous pouvez également installer l'application avec ./gradlew installArm7Debug. D'autres tâches sont faciles à trouver de./gradlew tasks
Andreas Løve Selvik
1
J'ai compilé le projet et l'ai téléchargé sur l'appareil Android à l'aide des commandes ./gradlew assembleDebuget ./gradlew installDebug. Dans AndroidStudio, il y a une console qui surveille toutes les activités de l'appareil Android en temps réel (par exemple, si l'appareil Android tombe en panne, la console imprime la trace des exceptions). Comment obtenir cette fonction de surveillance sur un terminal?
mercury0114
Comment empêcher le gradle de télécharger le -> Téléchargement de services.gradle.org/distributions/gradle-2.xyz-all.zip. J'ai remarqué que le gradle construit bien le projet Android, mais sur la ligne de commande, il y a un problème de configuration du proxy. Il peut être résolu en mettant le proxy settigns (mais pour le moment je n'ai pas ce privilège) mais je veux juste contourner le téléchargement .. Comment puis-je faire cela?
Raulp
24

Essayez ceci (OS X uniquement):

brew install homebrew/versions/gradle110
gradle build

Vous pouvez utiliser gradle taskspour voir toutes les tâches disponibles pour le projet en cours. Non Android Studioest nécessaire ici.

superarts.org
la source
4
Assurez-vous que vous avez installé homebrew pour commencer!
amitavk
1
"pas besoin d'Android Studio" - sauf si vous avez besoin du SDK Android, je suppose. En tout cas, le projet que j'essaie de construire le demande.
hmijail pleure les démissionnaires le
21

il existe deux types de build pour construire votre application en utilisant les paramètres de build de Gradle: un pour déboguer votre application - debug - et un pour construire votre package final en mode release.

Construction en mode débogage

  • Accédez d'abord au dossier racine du projet de studio Android à l'aide de CMD entrez la description de l'image ici

  • exécutez cette commande gradlew.bat assembleDebug

  • La fenêtre de sortie ressemble à ceci entrez la description de l'image ici

Construire un apk signé en mode Release

  • Modifiez le fichier build.gradle pour construire votre projet en mode version:

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

entrez la description de l'image ici

  • exécutez cette commande gradlew.bat assembleRelease

C'est fait, bonne chance!

Dhaval Jivani
la source
2
Existe-t-il un moyen de lancer automatiquement l'application après la construction réussie?
Ambar Jain
Je ne trouve aucun moyen de lancer automatiquement l'application après la construction
Dhaval Jivani
3
@DhavalJivani le lance dans un émulateur, tu veux dire? Si c'est le cas, ce ne sont que de simples commandes adb. Vous pouvez même cibler une activité spécifique à lancer. developer.android.com/studio/command-line/adb.html
blizz
@DhavalJivani quelle est la meilleure façon de tester l'application Android dans les tests d'automatisation?. En ce qui concerne le Web, nous avons du sélénium en python et en node.
Harsh Manvar
9

Ceci est une tentative de guide complet

1. Installez Gradle et le SDK Android

Soit

  • Installez-les comme bon vous semble
  • Courir ./gradlew , ou gradlew.batsi sur Windows
    • chmod +x ./gradlew peut être nécessaire

À partir de ce moment, gradle fait référence à l'exécution de Gradle de la manière que vous avez choisie. Remplacez en conséquence.

2. Configurez le SDK Android

  • Si vous avez installé manuellement le SDK

    • export ANDROID_HOME=<install location>
    • Vous voudrez peut-être le mettre dans votre ~/.profilesi ce n'est pas fait automatiquement
  • Acceptez les licences: yes | sdkmanager

    • sdkmanager peuvent être trouvés dans $ANDROID_HOME/tools/bin
    • sdkmanager peut devoir être exécuté en tant que root
  • Essayez de courir gradle

    • S'il y a des plaintes concernant des licences ou des SDK introuvables, corrigez les autorisations du répertoire
      • chown -R user:group $ANDROID_HOME
      • Si vous êtes imprudent et / ou le seul utilisateur: chmod 777 -R $ANDROID_HOME

3. Bâtiment

  • gradle tasks répertorie toutes les tâches qui peuvent être exécutées
  • :app:[appname] est le préfixe de toutes les tâches, que vous verrez dans les journaux Gradle lorsque vous construisez
    • Cela peut être exclu lors de l'exécution d'une tâche

Quelques tâches essentielles

  • gradle assemble: créez toutes les variantes de votre application
    • Les .apks résultants sont dans app/[appname]/build/outputs/apk/[debug/release]
  • gradle assembleDebugou assembleRelease: créez uniquement les versions de débogage ou de publication
  • gradle installDebugou installReleaseconstruire et installer sur un périphérique connecté
    • Avoir adb installé
    • Connectez un appareil avec le débogage USB et le transfert de fichiers USB activés
    • Exécutez adb devices, vérifiez que votre appareil est répertorié et que l' appareil se trouve à côté

Construire et installer automatiquement en fonction des modifications

Cela évite d'avoir à exécuter en permanence les mêmes commandes

gradle -t --continue installDebug
  • -t: aka --continuous, réexécute automatiquement la tâche après la modification d'un fichier
  • --continue: Continuer après des erreurs. Empêche l'arrêt lorsque des erreurs se produisent

Courez gradle -hpour plus d'aide

Williamvds
la source
8

Vous êtes probablement ici car vous souhaitez également l'installer!

Construire

gradlew

(Sous Windows gradlew.bat)

Puis installez

adb install -r exampleApp.apk

(Le -rfait qu'il remplace la copie existante, ajoutez un -ssi l'installation sur un émulateur)

Prime

J'ai mis en place un alias dans my ~/.bash_profile, pour en faire une commande 2char.

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

(Abréviation de Build and Install)

Gibolt
la source
7

Cheatsheet pour exécuter Gradle à partir de la ligne de commande pour les projets Android Studio sous Linux:

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

Devrait vous aider à démarrer ...

bph
la source
3

Pour Mac, utilisez cette commande

  ./gradlew task-name
Vji
la source
1

Uniquement pour les utilisateurs MAC

Extension de Vji la réponse de .

Procédure étape par étape:

  1. Terminal ouvert
  2. Remplacez votre répertoire par votre projet (cd PathOfYourProject)
  3. Copiez et collez cette commande et appuyez sur Entrée:

    chmod +x gradlew
    
  4. Comme Vji l'a suggéré:

    ./gradlew task-name
    

    N'OUBLIEZ PAS D'AJOUTER. (DOT) AVANT / gradlew

Naveen Kumawat
la source
1

La documentation officielle est ici:

Pour créer un APK de débogage, ouvrez une ligne de commande et accédez à la racine de votre répertoire de projet. Pour lancer une génération de débogage, appelez la assembleDebugtâche:

gradlew assembleDebug

Cela crée un APK nommé module_name-debug.apkdans project_name/module_name/build/outputs/apk/.

Muhammad Usman
la source
0

enter code hereCréez un fichier de script avec la commande gradle et adb ci-dessous, exécutez le fichier de script

./gradlew clean

./gradlew assembleDebug ./gradlew installDebug

adb shell am start -n ID application / chemin complet de l'activité du lanceur

user2851150
la source
0

notez que vous pouvez également le faire dans Android Studio en cliquant sur la fenêtre Gradle, puis sur le bouton «éléphant». Cela ouvrira une nouvelle fenêtre appelée "exécuter n'importe quoi" (peut également être trouvée en recherchant ce nom dans "rechercher partout") où vous pouvez taper manuellement n'importe quelle commande gradle que vous voulez. Pas "tout à fait" la ligne de commande, mais fournit souvent plus de ce dont j'ai besoin que la ligne de commande Windows.

Cela vous permet de donner des paramètres facultatifs pour graduer les tâches, etc.

mawalker
la source
-2

Ajouter de la valeur à toutes ces réponses,

beaucoup ont demandé la commande pour exécuter l'application dans AVD après la construction réussie.

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