Erstellen Sie die Android Studio-App über die Befehlszeile

Lesezeit: 11 Minuten

Benutzeravatar von B. Nadolson
B. Nadolson

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

  • Zum Beispiel ./gradlew AssembleRelease, ./gradlew AssembleDebug

    – Gabriele Mariotti

    25. Juni 2014 um 6:09 Uhr

  • Wenn Sie mehrere Build-Varianten haben, sollten Sie zu ./gradlew AssembleYourVariantRelease gehen

    – Michał Dobi Dobrzański

    17. Juli 2019 um 13:06 Uhr

Benutzeravatar von FuegoFro
FuegoFro

Android Studio erstellt automatisch eine Gradle-Wrapper im Stammverzeichnis Ihres Projekts, wodurch Gradle aufgerufen wird. Der Wrapper ist im Grunde ein Skript, das die eigentliche Gradle-Binärdatei durchruft und es Ihnen ermöglicht, Gradle auf dem neuesten Stand zu halten, was die Verwendung der Versionskontrolle vereinfacht. Um einen Gradle-Befehl auszuführen, können Sie einfach die verwenden gradlew Skript im Stammverzeichnis Ihres Projekts (bzw gradlew.bat unter Windows) gefolgt vom Namen der Aufgabe, die Sie ausführen möchten. Um beispielsweise eine Debug-Version Ihrer Android-Anwendung zu erstellen, können Sie ausführen ./gradlew assembleDebug aus dem Stamm Ihres Repositorys. In einem Standardprojekt-Setup ist die resultierende apk dann in zu finden app/build/outputs/apk/app-debug.apk. Auf einer *nix-Maschine können Sie auch einfach laufen find . -name '*.apk' um es zu finden, wenn es nicht da ist.

  • Ich habe mehr als 2 Stunden gebraucht, um zu verstehen, wie Gradle von der Befehlszeile aus ausgeführt wird

    – Oded Regev

    8. Januar 2015 um 13:05 Uhr

  • Ich habe dies über die Befehlszeile ausgeführt c:\path_to_my_app\gradlew.bat ./gradlew assemblyDebugund es hat es mir gezeigt wird heruntergeladen services.gradle.org/distributions/gradle-2.10-all.zip. Und es bleibt dort hängen. Was vermisse ich?

    – Said Neamati

    3. Juni 2016 um 15:34 Uhr


  • Sie können die App auch mit installieren ./gradlew installArm7Debug. Andere Aufgaben sind leicht zu finden ./gradlew tasks

    – Andreas Løve Selvik

    20. Oktober 2016 um 13:40 Uhr


  • Ich habe das Projekt kompiliert und mit auf das Android-Gerät hochgeladen ./gradlew assembleDebug und ./gradlew installDebug Befehle. 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, gibt die Konsole den Ausnahme-Trace aus). Wie bekomme ich diese Überwachungsfunktion auf ein Terminal?

    – Quecksilber0114

    14. Juli 2017 um 1:13 Uhr

  • So verhindern Sie, dass Gradle das herunterlädt -> Downloading services.gradle.org/distributions/gradle-2.xyz-all.zip . Mir ist aufgefallen, dass Gradle das Android-Projekt gut erstellt, aber in der Befehlszeile gibt es ein Problem mit der Proxy-Einstellung. Es kann gelöst werden, indem die Proxy-Einstellungen gesetzt werden (aber im Moment habe ich diese Berechtigung nicht), aber ich möchte nur das Herunterladen umgehen. Wie kann ich das tun?

    – Raulp

    19. Februar 2018 um 6:15 Uhr

Versuchen Sie dies (nur OS X):

brew install homebrew/versions/gradle110
gradle build

Sie können verwenden gradle tasks um alle Aufgaben anzuzeigen, die für das aktuelle Projekt verfügbar sind. Nein Android Studio wird hier benötigt.

  • Stellen Sie sicher, dass Sie Homebrew von Anfang an installiert haben!

    – amitavk

    28. August 2015 um 20:25 Uhr

  • “kein Android Studio erforderlich” – es sei denn, Sie benötigen das Android SDK, denke ich. Auf jeden Fall verlangt das Projekt, das ich zu bauen versuche, danach.

    – hmjail

    25. Juli 2017 um 17:22 Uhr

Benutzeravatar von Dhaval Jivani
Dhaval Jivani

Es gibt zwei Build-Typen, um Ihre Anwendung mit den Gradle-Build-Einstellungen zu erstellen: einen zum Debuggen Ihrer Anwendung – Debug – und einen zum Erstellen Ihres endgültigen Pakets für die Veröffentlichung – Release-Modus.

Bauen im Debug-Modus

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

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

  • Das Ausgabefenster sieht so aus
    Geben Sie hier die Bildbeschreibung ein

Erstellen Sie eine 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 aus gradlew.bat assemblRelease

  • Gibt es eine Möglichkeit, die App nach dem erfolgreichen Erstellen automatisch zu starten?

    – Ambar Jain

    24. Januar 2017 um 7:57 Uhr

  • Ich kann keine Möglichkeit finden, die App nach dem Build automatisch zu starten

    – Dhaval Jivani

    27. Januar 2017 um 12:18 Uhr

  • @DhavalJivani starte es in einem Emulator, meinst du? Wenn ja, sind das nur einfache Adb-Befehle. Sie können sogar gezielt eine bestimmte Aktivität starten. developer.android.com/studio/command-line/adb.html

    – Blitz

    18. Februar 2017 um 6:32 Uhr


  • @DhavalJivani Was ist der beste Weg, um Android-Apps in Automatisierungstests zu testen?. Was das Web angeht, haben wir Selen in Python und Node.

    – Harsh Manvar

    17. November 2019 um 18:34 Uhr


Benutzeravatar von williamvds
williamvds

1. Installieren Sie Gradle und das Android SDK

Entweder

  • Installieren Sie diese, wie Sie es für richtig halten
  • Laufen ./gradlewoder gradlew.bat wenn unter Windows
    • chmod +x ./gradlew kann notwendig sein

Ab diesem Zeitpunkt gradle bezieht sich auf die Ausführung von Gradle auf die von Ihnen gewählte Weise. 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 einfügen ~/.profile wenn es nicht automatisch gemacht wird
  • Akzeptieren Sie die Lizenzen: yes | sdkmanager --licenses

    • sdkmanager kann gefunden werden in $ANDROID_HOME/tools/bin
    • sdkmanager muss möglicherweise als root ausgeführt werden
  • Versuchen Sie es mit Laufen gradle

    • Wenn es Beschwerden darüber gibt, dass Lizenzen oder SDKs nicht gefunden werden, 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. Gebäude

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

Einige wesentliche Aufgaben

  • gradle assemble: Erstellen Sie alle Varianten Ihrer App
    • Die resultierenden .apks sind in app/[appname]/build/outputs/apk/[debug/release]
  • gradle assembleDebug oder assembleRelease: Bauen Sie nur die Debug- oder Release-Versionen
  • gradle installDebug oder installRelease Erstellen und Installieren auf einem angeschlossenen Gerät
    • Haben adb Eingerichtet
    • Schließen Sie ein Gerät mit aktiviertem USB-Debugging und USB-Dateiübertragung an
    • Laufen adb devicesüberprüfen Sie, 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 --continuousführt die Aufgabe automatisch erneut aus, nachdem eine Datei geändert wurde
  • --continue: Nach Fehlern fortfahren. Verhindert das Stoppen, wenn Fehler auftreten

Laufen gradle -h für weitere Hilfe

Gibolts Benutzeravatar
Gibolt

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

Bauen

gradlew

(Unter Windows gradlew.bat)

Dann installieren

adb install -r exampleApp.apk

(Das -r lässt es die vorhandene Kopie ersetzen, fügen Sie eine hinzu -s bei Installation auf einem Emulator)

Bonus

Ich habe einen Alias ​​in meinem eingerichtet ~/.bash_profileum es zu einem 2-Zeichen-Befehl zu machen.

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

(Kurz für Build and Install)

Benutzeravatar von bph
bph

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..

Ich hatte das gleiche Problem und scheint, dass Google viele Änderungen vorgenommen hat.

Ich kann Ihnen die Schritte für die Installation rein über die Befehlszeile von Grund auf erzählen. Ich habe es am 22. Februar 2021 auf Ubuntu getestet.

SDK-Ordner erstellen

export ANDROID_SDK_ROOT=/usr/lib/android-sdk
sudo mkdir -p $ANDROID_SDK_ROOT

openjdk installieren

sudo apt-get install openjdk-8-jdk

Laden Sie das Android-SDK herunter

Gehe zu https://developer.android.com/studio/index.html
Dann runter zu den Befehlszeilen-Tools Klicken Sie auf den Linux-Link, akzeptieren Sie die Vereinbarung und klicken Sie mit der rechten Maustaste und kopieren Sie die Linkadresse, anstatt sie herunterzuladen

cd $ANDROID_SDK_ROOT
sudo wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
sudo unzip commandlinetools-linux-6858069_latest.zip

Ordner verschieben

Benennen Sie das entpackte Verzeichnis von cmdline-tools in tools um und platzieren Sie es unter $ANDROID_SDK_ROOT/cmdline-tools, sodass es jetzt so aussehen sollte: $ANDROID_SDK_ROOT/cmdline-tools/tools. Und darin sollten Sie Folgendes haben: NOTICE.txt bin lib source.properties.

Pfad setzen

PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/cmdline-tools/tools/bin

Dies hatte keine Wirkung für mich, daher der nächste Schritt

Navigieren Sie zu sdkmanager

cd $ANDROID_SDK_ROOT/cmdline-tools/tools/bin

Lizenzen akzeptieren

yes | sudo sdkmanager --licenses

Aufbau erstellen

Führen Sie dies schließlich in Ihrem Projekt aus

chmod 777 gradlew
sudo ./gradlew assembleDebug

Dadurch wird ein APK namens -debug.apk unter //build/outputs/apk/debug erstellt. Die Datei ist bereits mit dem Debug-Schlüssel signiert und mit Zipalign ausgerichtet, sodass Sie sie sofort auf einem Gerät installieren können.

LETZTE SCHRITTE

Hier sind die letzten Schritte. Erstellen Sie 2 .sh-Dateien mit diesen Inhalten. Verwenden chmod 777 vorher auf beiden. Kein sudo erforderlich.

Download_APK_Code_NOSUDO4.sh

# Don't forget to do chmod 777 Download_APK_Code_NOSUDO2.sh
#!/bin/bash

if [ -d "camera-samples" ]; then
  echo "############################# Deleting older code base.      ######################################"
  rm -rf camera-samples
fi

echo "###########################     Download Source Code: Start ... #####################################"
git clone git://git.quicinc.com/camera-samples -b iot-concam-apk.lnx.1.1
echo "##########################      Download Source Code: Done . . . ####################################"

Build_App_NOSUDO4.sh

# Don't forget to do chmod 777 Build_App_NOSUDO2.sh
#!/bin/bash

currentDir=$(pwd)
export ANDROID_SDK_ROOT=$(pwd)

# echo "############################################   Install JDK ...  ################################################"
# apt-get install openjdk-8-jdk

if [ -e "commandlinetools-linux-6858069_latest.zip" ]; then
  echo "############################# Deleting older zip file.      ######################################"
  rm -rf commandlinetools-linux-6858069_latest.zip
fi
echo "###########################################   Download Command Line Tools .. ###################################"
wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
echo "###########################################   Download Command Line Tools Done .. ##############################"

if [ -d "cmdline-tools" ]; then
  echo "############################# Deleting older cmdline-tools.      ######################################"
  rm -rf cmdline-tools
fi
echo "###########################################   Unzip Command Line Tools Start .. #################################"
unzip commandlinetools-linux-6858069_latest.zip
echo "###########################################   Unzip Command Line Tools Done .. #################################"


echo "###########################################   Creating Directory Structure .. #################################"
mv cmdline-tools tools
mkdir cmdline-tools
cp -r  tools cmdline-tools/
rm -rf tools/


PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/cmdline-tools/tools/bin
echo "##########################################   Updated Path : $PATH ###############################################"

cd $ANDROID_SDK_ROOT/cmdline-tools/tools/bin

echo "##########################################   Accept All Licenses .. #############################################"
yes | sdkmanager --licenses

cd $currentDir/camera-samples/Camera2Video
echo "sdk.dir = $ANDROID_SDK_ROOT" > local.properties

echo "########################################     Building APK . . . #################################################"
chmod 777 gradlew
./gradlew assembleDebug
echo "#######################################      Building APK Done. . .  ############################################"

echo "##################################### APK generated here:  $currentDir/app/build/outputs/apk/debug/app-debug.apk ###################################"
##########################################################

Führen Sie diese Befehle aus.

chmod 777 Download_APK_Code_NOSUDO4.sh
chmod 777 Build_App_NOSUDO4.sh
./Download_APK_Code_NOSUDO4.sh
./Build_App_NOSUDO4.sh

VERWEISE

https://gist.github.com/guipmourao/3e7edc951b043f6de30ca15a5cc2be40

Android-Befehlszeilentools sdkmanager zeigt immer: Warnung: Einstellungen konnten nicht erstellt werden

Fehler „Fehler beim Installieren der folgenden Android SDK-Pakete, da einige Lizenzen nicht akzeptiert wurden“.

https://developer.android.com/studio/build/building-cmdline#sign_cmdline

///////////////////////////////////

FENSTER

Hier sind die Schritte für Windows über Powershell. Getestet am 6. März 2021. Sie können komplett von vorne anfangen.

Voraussetzungen

  1. Git herunterladen
  2. JDK installieren. Ich habe jdk-8u281-windows-x64.exe verwendet

Erstellen Sie eine Datei DownloadAndBuild.ps1 mit diesen Inhalten.


$location = Get-Location

if (Test-Path "$location\camera-samples") {
    Write-Host "########################### Deleting older code base: Start. ################################"
    Remove-Item -Force -Recurse -Path "$location\camera-samples"
    Write-Host "########################### Deleting older code base: Done. #################################"
}
Write-Host "########################## Download Source Code: Start. #####################################"
git clone https://source.codeaurora.org/quic/la/camera-samples -b iot-concam-apk.lnx.1.1
Write-Host "########################## Download Source Code: Done. ####################################"


if (Test-Path "$location\commandlinetools-win-6858069_latest.zip") {
    Write-Host "########################### Deleting older zip file: Start. ################################"
    Remove-Item -Force -Recurse -Path "$location\commandlinetools-win-6858069_latest.zip"
    Write-Host "########################### Deleting older zip file: Done. #################################"
}
Write-Host "########################## Download Command Line Tools: Start. #####################################"
$client = new-object System.Net.WebClient
$client.DownloadFile("https://dl.google.com/android/repository/commandlinetools-win-6858069_latest.zip","commandlinetools-win-6858069_latest.zip")
Write-Host "########################## Download Command Line Tools: End. #####################################"

if (Test-Path "$location\cmdline-tools") {
    Write-Host "########################### Deleting older folder: Start. ################################"
    Remove-Item -Force -Recurse -Path "$location\cmdline-tools"
    Write-Host "########################### Deleting older folder: Done. #################################"
}
Write-Host "########################## Extract Command Line Tools: Start. #####################################"
Expand-Archive "$location\commandlinetools-win-6858069_latest.zip" -DestinationPath "$location"
Write-Host "########################## Extract Command Line Tools: End. #####################################"



Write-Host "########################## Create Directory Structure: Start. #####################################"
Rename-Item -Path "$location\cmdline-tools" -newName "$location\tools"
New-Item -ItemType Directory -Force -Path "$location\cmdline-tools"
Move-Item -Path "$location\tools" -Destination "$location\cmdline-tools"
Write-Host "########################## Create Directory Structure: End. #####################################"

Write-Host "########################## Accept Licenses: Start. #####################################"
Set-Location -Path $location/cmdline-tools/tools/bin
for($i=0;$i -lt 100;$i++) { $response += "y`n"}; $response | ./sdkmanager.bat --licenses
Write-Host "########################## Accept Licenses: End. #####################################"


Write-Host "########################## Build APK: Start. #####################################"
Set-Location -Path $location/camera-samples/Camera2Video
$Env:ANDROID_SDK_ROOT = $location
.\gradlew assembleDebug
Write-Host "########################## Build APK: End. #####################################"

Write-Host "##################################### APK generated here:  $location/camera-samples/Camera2Video/app/build/outputs/apk/debug/app-debug.apk ###################################"
PAUSE

Rechtsklicken und über Powershell ausführen. Dadurch wird ein Android-Projekt über Git heruntergeladen, das SDK installiert und die Android-App erstellt.

Bearbeiten Sie nach Belieben.

  • Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier einzufügen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verlinkte Seite ändert. – Aus Bewertung

    – Muhammad Dyas Yaskur

    22. Februar 2021 um 17:54 Uhr

  • Ich habe die vollständige Antwort hier hinzugefügt.

    – Zeitgeist

    22. Februar 2021 um 18:51 Uhr

  • Die beste Lösung für meine Probleme nach langem Bemühen! Danke vielmals

    – Mohsen Abasi

    5. April um 2:28


1432200cookie-checkErstellen Sie die Android Studio-App über die Befehlszeile

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy