I want to build an Android Studio app (the Gradle build system), but I want to do this via the command line.
This question is related to
android-studio
gradle
command-line
android-gradle-plugin
Official Documentation is here:
To build a debug APK, open a command line and navigate to the root of your project directory. To initiate a debug build, invoke the assembleDebug
task:
gradlew assembleDebug
This creates an APK named module_name-debug.apk
in project_name/module_name/build/outputs/apk/
.
gradlew
(On Windows gradlew.bat
)
adb install -r exampleApp.apk
(The -r
makes it replace the existing copy, add an -s
if installing on an emulator)
I set up an alias in my ~/.bash_profile
, to make it a 2char command.
alias bi="gradlew && adb install -r exampleApp.apk"
(Short for Build and Install)
note, you can also do this within Android Studio by clicking the gradle window, and then the 'elephant' button. This will open a new window called "run anything" (can also be found by searching for that name in 'search everywhere') where you can manually type any gradle command you want in. Not "quite" command line, but often provides more of what I need than windows command line.
This allows you to give optional params to gradle tasks, etc.
Adding value to all these answers,
many have asked the command for running App in AVD after build sucessful.
adb install -r {path-to-your-bild-folder}/{yourAppName}.apk
For Mac use this command
./gradlew task-name
there are two build types to build your application using the Gradle build settings: one for debugging your application — debug — and one for building your final package for release — release mode.
First Navigate to Android studio project Root folder using CMD
run this command gradlew.bat assembleDebug
Edit the build.gradle file to build your project in release mode:
android {
...
defaultConfig { ... }
signingConfigs {
release {
storeFile file("myreleasekey.keystore")
storePassword "password"
keyAlias "MyReleaseKey"
keyPassword "password"
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}}
Done.Good Luck!
Try this (OS X only):
brew install homebrew/versions/gradle110
gradle build
You can use gradle tasks
to see all tasks available for the current project. No Android Studio
is needed here.
Either
./gradlew
, or gradlew.bat
if on Windows
chmod +x ./gradlew
may be necessaryFrom this point onwards, gradle
refers to running Gradle whichever way you've chosen.
Substitute accordingly.
If you've manually installed the SDK
export ANDROID_HOME=<install location>
~/.profile
if it's not done automaticallyAccept the licenses: yes | sdkmanager --licenses
sdkmanager
can be found in $ANDROID_HOME/tools/bin
sdkmanager
may have to be run as rootTry running gradle
chown -R user:group $ANDROID_HOME
chmod 777 -R $ANDROID_HOME
gradle tasks
lists all tasks that can be run:app:[appname]
is the prefix of all tasks, which you'll see in the Gradle
logs when you're building
Some essential tasks
gradle assemble
: build all variants of your app
app/[appname]/build/outputs/apk/[debug/release]
gradle assembleDebug
or assembleRelease
: build just the debug or release versionsgradle installDebug
or installRelease
build and install to an attached device
adb devices
, check that your device is listed and device is
beside itAutomatically build and install upon changes
This avoids having to continuously run the same commands
gradle -t --continue installDebug
-t
: aka --continuous
, automatically re-runs the task after a file is changed--continue
: Continue after errors. Prevents stopping when errors occurgradle -h
for more helpenter code here
Create script file with below gradle and adb command, Execute script file
./gradlew clean
./gradlew assembleDebug ./gradlew installDebug
adb shell am start -n applicationID/full path of launcher activity
Cheatsheet for running Gradle from the command line for Android Studio projects on Linux:
cd <project-root>
./gradlew
./gradlew tasks
./gradlew --help
Should get you started..
I faced the same problem and seems that there have been many changes by google.
I can tell you the steps for installing purely via command line from scratch. I tested it on Ubuntu on 22 Feb 2021.
export ANDROID_SDK_ROOT=/usr/lib/android-sdk
sudo mkdir -p $ANDROID_SDK_ROOT
sudo apt-get install openjdk-8-jdk
Go to https://developer.android.com/studio/index.html Then down to Command line tools only Click on Linux link, accept the agreement and instead of downloading right click and copy link address
cd $ANDROID_SDK_ROOT
sudo wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
sudo unzip commandlinetools-linux-6858069_latest.zip
Rename the unpacked directory from cmdline-tools to tools, and place it under $ANDROID_SDK_ROOT/cmdline-tools, so now it should look like: $ANDROID_SDK_ROOT/cmdline-tools/tools. And inside it, you should have: NOTICE.txt bin lib source.properties.
PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/cmdline-tools/tools/bin
This had no effect for me, hence the next step
cd $ANDROID_SDK_ROOT/cmdline-tools/tools/bin
yes | sudo sdkmanager --licenses
Finally, run this inside your project
sudo ./gradlew assembleDebug
This creates an APK named -debug.apk at //build/outputs/apk/debug The file is already signed with the debug key and aligned with zipalign, so you can immediately install it on a device.
https://gist.github.com/guipmourao/3e7edc951b043f6de30ca15a5cc2be40
Android Command line tools sdkmanager always shows: Warning: Could not create settings
"Failed to install the following Android SDK packages as some licences have not been accepted" error
https://developer.android.com/studio/build/building-cmdline#sign_cmdline
Source: Stackoverflow.com