Erstellen Sie die Android Studio-App über die Befehlszeile

135

Ich möchte eine Android Studio-App (das Gradle-Build-System) erstellen, dies jedoch über die Befehlszeile.

B. Nadolson
quelle
6
Zum Beispiel ./gradlew assembleRelease, ./gradlew assembleDebug
Gabriele Mariotti
Wenn Sie mehrere Build-Varianten haben, sollten Sie gehen ./gradlew assembleYourVariantRelease
Michał Dobi Dobrzański

Antworten:

190

Android Studio erstellt automatisch einen Gradle-Wrapper im Stammverzeichnis Ihres Projekts. Auf diese Weise wird Gradle aufgerufen. Der Wrapper ist im Grunde ein Skript, das die eigentliche Gradle-Binärdatei aufruft und es Ihnen ermöglicht, Gradle auf dem neuesten Stand zu halten, was die Versionskontrolle vereinfacht. Um einen Gradle-Befehl auszuführen, können Sie einfach das gradlewSkript verwenden, das sich im Stammverzeichnis Ihres Projekts (oder gradlew.batunter Windows) befindet, gefolgt vom Namen der Aufgabe, die Sie ausführen möchten. Um beispielsweise eine Debug-Version Ihrer Android-Anwendung zu erstellen, können Sie sie ./gradlew assembleDebugim Stammverzeichnis Ihres Repositorys ausführen . In einem Standardprojekt-Setup befindet sich die resultierende apk dann in app/build/outputs/apk/app-debug.apk. Auf einem * nix-Computer können Sie ihn auch einfach ausführen find . -name '*.apk', um ihn zu finden, wenn er nicht vorhanden ist.

FuegoFro
quelle
36
Ich habe mehr als 2 Stunden gebraucht, um zu verstehen, wie Gradle über die Befehlszeile richtig ausgeführt werden kann
Oded Regev,
4
Ich habe dies über die Befehlszeile ausgeführt c:\path_to_my_app\gradlew.bat ./gradlew assemblyDebugund es hat mir gezeigt, dass ich services.gradle.org/distributions/gradle-2.10-all.zip heruntergeladen habe . Und es steckt dort fest. Was vermisse ich?
Saeed Neamati
Sie können die App auch mit installieren ./gradlew installArm7Debug. Andere Aufgaben sind leicht zu finden von./gradlew tasks
Andreas Løve Selvik
1
Ich habe das Projekt kompiliert und es mit ./gradlew assembleDebugund ./gradlew installDebugBefehlen auf das Android-Gerät hochgeladen . Im AndroidStudio gibt es eine Konsole, die alle Aktivitäten des Android-Geräts in Echtzeit überwacht (z. B. wenn das Android-Gerät abstürzt, druckt die Konsole die Ausnahmespur). Wie bekomme ich diese Überwachungseinrichtung auf ein Terminal?
Quecksilber0114
So verhindern Sie, dass der Gradle die Datei herunterlädt -> Downloads services.gradle.org/distributions/gradle-2.xyz-all.zip. Ich habe festgestellt, dass der Gradle das Android-Projekt einwandfrei erstellt, aber in der Befehlszeile gibt es ein Problem mit der Proxy-Einstellung. Es kann gelöst werden, indem die Proxy-Einstellungen vorgenommen werden (aber im Moment habe ich dieses Privileg nicht), aber ich möchte nur das Herunterladen umgehen. Wie kann ich das tun?
Raulp
24

Versuchen Sie dies (nur OS X):

brew install homebrew/versions/gradle110
gradle build

Mit können gradle tasksSie alle für das aktuelle Projekt verfügbaren Aufgaben anzeigen. Hier wird kein Android Studiobenötigt.

superarts.org
quelle
4
Stellen Sie sicher, dass Sie Homebrew installiert haben!
Amitavk
1
"Kein Android Studio erforderlich" - es sei denn, Sie benötigen das Android SDK, denke ich. In jedem Fall verlangt das Projekt, das ich zu bauen versuche, danach.
Hmijail trauert um Rücktritte
21

Es gibt zwei Build-Typen zum Erstellen Ihrer Anwendung mithilfe der Gradle-Build-Einstellungen: einen zum Debuggen Ihrer Anwendung - Debuggen - und einen zum Erstellen Ihres endgültigen Pakets für den Release-Release-Modus.

Erstellen im Debug-Modus

  • Navigieren Sie zuerst mit CMD zum Stammordner des Android Studio-Projekts Geben Sie hier die Bildbeschreibung ein

  • Führen Sie diesen Befehl gradlew.bat assembleDebug aus

  • Das Ausgabefenster sieht folgendermaßen aus Geben Sie hier die Bildbeschreibung ein

Erstelle signierte apk im Release-Modus

  • Bearbeiten Sie die Datei build.gradle, um Ihr Projekt im Release-Modus zu erstellen:

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

Geben Sie hier die Bildbeschreibung ein

  • Führen Sie diesen Befehl gradlew.bat assembleRelease aus

Fertig. Viel Glück!

Dhaval Jivani
quelle
2
Gibt es eine Möglichkeit, die App nach erfolgreicher Erstellung automatisch zu starten?
Ambar Jain
Ich kann keine Möglichkeit finden, die App nach dem Build automatisch zu starten
Dhaval Jivani
3
@DhavalJivani starten Sie es in einem Emulator, meinen Sie? Wenn ja, sind das nur einfache ADB-Befehle. Sie können sogar eine bestimmte Aktivität zum Starten auswählen. developer.android.com/studio/command-line/adb.html
Blizz
@DhavalJivani Was ist der beste Weg, um Android App in Automatisierungstests zu testen?. Was das Web betrifft, haben wir Selen in Python und Node.
Harsh Manvar
9

Dies ist ein Versuch einer vollständigen Anleitung

1. Installieren Sie Gradle und das Android SDK

Entweder

  • Installieren Sie diese nach Belieben
  • Ausführen ./gradlewoder gradlew.batunter Windows
    • chmod +x ./gradlew kann notwendig sein

gradleBezieht sich ab diesem Punkt darauf, Gradle so auszuführen, wie Sie es gewählt haben. Ersetzen Sie entsprechend.

2. Richten Sie das Android SDK ein

  • Wenn Sie das SDK manuell installiert haben

    • export ANDROID_HOME=<install location>
    • Vielleicht möchten Sie das in Ihre, ~/.profilewenn es nicht automatisch gemacht wird
  • Akzeptieren Sie die Lizenzen: yes | sdkmanager

    • sdkmanager kann gefunden werden in $ANDROID_HOME/tools/bin
    • sdkmanager muss möglicherweise als root ausgeführt werden
  • Versuche zu rennen gradle

    • Wenn Beschwerden darüber vorliegen, dass Lizenzen oder SDKs nicht gefunden wurden, korrigieren Sie die Verzeichnisberechtigungen
      • chown -R user:group $ANDROID_HOME
      • Wenn Sie rücksichtslos und / oder der einzige Benutzer sind: chmod 777 -R $ANDROID_HOME

3. Bauen

  • gradle tasks listet alle Aufgaben auf, die ausgeführt werden können
  • :app:[appname] ist das Präfix aller Aufgaben, die beim Erstellen in den Gradle-Protokollen angezeigt werden
    • Dies kann beim Ausführen einer Aufgabe ausgeschlossen werden

Einige wesentliche Aufgaben

  • gradle assemble: Erstellen Sie alle Varianten Ihrer App
    • Resultierende .apks sind in app/[appname]/build/outputs/apk/[debug/release]
  • gradle assembleDebugoder assembleRelease: Erstellen Sie nur die Debug- oder Release-Versionen
  • gradle installDebugoder installReleaseerstellen und auf einem angeschlossenen Gerät installieren
    • Habe adb installiert
    • Schließen Sie ein Gerät mit aktiviertem USB-Debugging und USB-Dateiübertragung an
    • Führen Sie adb devicesprüfen, ob Ihr Gerät aufgeführt ist und Gerät ist daneben

Bei Änderungen automatisch erstellen und installieren

Dadurch wird vermieden, dass ständig dieselben Befehle ausgeführt werden müssen

gradle -t --continue installDebug
  • -t: aka --continuous, führt die Aufgabe automatisch erneut aus, nachdem eine Datei geändert wurde
  • --continue: Fahren Sie nach Fehlern fort. Verhindert das Anhalten, wenn Fehler auftreten

Laufen Sie, gradle -hum weitere Hilfe zu erhalten

williamvds
quelle
8

Sie sind wahrscheinlich hier, weil Sie es auch installieren möchten!

Bauen

gradlew

(Unter Windows gradlew.bat)

Dann installieren

adb install -r exampleApp.apk

( -rDadurch wird die vorhandene Kopie ersetzt. Fügen Sie eine hinzu, -swenn Sie sie auf einem Emulator installieren.)

Bonus

Ich habe in meinem einen Alias ​​eingerichtet ~/.bash_profile, um daraus einen 2char-Befehl zu machen.

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

(Abkürzung für Build and Install)

Gibolt
quelle
7

Cheatsheet zum Ausführen von Gradle über die Befehlszeile für Android Studio-Projekte unter Linux:

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

Solltest du anfangen ..

bph
quelle
2

Verwenden Sie für Mac diesen Befehl

  ./gradlew task-name
Vji
quelle
1

Nur für MAC-Benutzer

Erweiterung der Antwort von Vji .

Schritt für Schritt Vorgehensweise:

  1. Terminal öffnen
  2. Ändern Sie Ihr Verzeichnis in Ihr Projekt (cd PathOfYourProject)
  3. Kopieren Sie diesen Befehl, fügen Sie ihn ein und drücken Sie die Eingabetaste:

    chmod +x gradlew
    
  4. Wie Vji vorschlug:

    ./gradlew task-name
    

    VERGESSEN SIE NICHT, VOR / gradlew hinzuzufügen

Naveen Kumawat
quelle
1

Die offizielle Dokumentation finden Sie hier:

Öffnen Sie zum Erstellen eines Debug-APK eine Befehlszeile und navigieren Sie zum Stammverzeichnis Ihres Projektverzeichnisses. Rufen Sie die assembleDebugAufgabe auf , um einen Debug-Build zu starten :

gradlew assembleDebug

Dadurch wird eine APK mit dem Namen module_name-debug.apkin erstellt project_name/module_name/build/outputs/apk/.

Muhammad Usman
quelle
0

enter code hereErstellen Sie eine Skriptdatei mit dem folgenden Befehl gradle und adb. Führen Sie die Skriptdatei aus

./gradlew clean

./gradlew assembleDebug ./gradlew installDebug

adb shell am start -n applicationID / vollständiger Pfad der Launcher-Aktivität

user2851150
quelle
0

Beachten Sie, dass Sie dies auch in Android Studio tun können, indem Sie auf das Gradle-Fenster und dann auf die Schaltfläche "Elefant" klicken. Dies öffnet ein neues Fenster mit dem Namen "Alles ausführen" (kann auch durch Suchen nach diesem Namen in "Überall suchen" gefunden werden), in dem Sie jeden gewünschten Gradle-Befehl manuell eingeben können. Nicht "ganz" Befehlszeile, bietet aber häufig mehr von dem was ich brauche als Windows Kommandozeile.

Auf diese Weise können Sie optionale Parameter für Gradle-Aufgaben usw. festlegen.

Mawalker
quelle
-2

All diesen Antworten einen Mehrwert hinzufügen,

Viele haben den Befehl zum Ausführen der App in AVD nach erfolgreicher Erstellung angefordert.

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