Ich möchte eine Android Studio-App (das Gradle-Build-System) erstellen, aber ich möchte dies über die Befehlszeile tun.
Erstellen Sie die Android Studio-App über die Befehlszeile
B. Nadolson
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 assemblyDebug
und 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
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
-
Führen Sie diesen Befehl aus gradlew.bat AssembleDebug
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 } }}
- 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
williamvds
1. Installieren Sie Gradle und das Android SDK
Entweder
- Installieren Sie diese, wie Sie es für richtig halten
- Laufen
./gradlew
odergradlew.bat
wenn unter Windowschmod +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
- Wenn es Beschwerden darüber gibt, dass Lizenzen oder SDKs nicht gefunden werden, korrigieren Sie die Verzeichnisberechtigungen
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]
- Die resultierenden .apks sind in
gradle assembleDebug
oderassembleRelease
: Bauen Sie nur die Debug- oder Release-Versionengradle installDebug
oderinstallRelease
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--continuous
fü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
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_profile
um es zu einem 2-Zeichen-Befehl zu machen.
alias bi="gradlew && adb install -r exampleApp.apk"
(Kurz für Build and Install)
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
- Git herunterladen
- 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
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