我想构建一个Android Studio应用程序(Gradle构建系统),但我想通过命令行执行此操作。
答案 0 :(得分:168)
Android Studio会在项目的根目录中自动创建Gradle wrapper,这就是它调用Gradle的方式。包装器基本上是一个调用实际Gradle二进制文件的脚本,并允许您使Gradle保持最新,这使得使用版本控制更容易。要运行Gradle命令,只需使用项目根目录中的gradlew
脚本(或Windows上的gradlew.bat
),然后使用要运行的任务的名称。例如,要构建Android应用程序的调试版本,可以从存储库的根目录运行./gradlew assembleDebug
。在默认项目设置中,可以在app/build/outputs/apk/app-debug.apk
中找到生成的apk。在* nix机器上,您也可以运行find . -name '*.apk'
来查找它,如果不存在的话。
答案 1 :(得分:21)
试试这个(仅限OS X):
brew install homebrew/versions/gradle110
gradle build
您可以使用gradle tasks
查看当前项目的所有可用任务。这里不需要Android Studio
。
答案 2 :(得分:19)
使用Gradle构建设置构建应用程序有两种构建类型:一种用于调试应用程序 - 调试 - 一种用于构建最终包以用于发布 - 发布模式。
编辑build.gradle文件以在发布模式下构建项目:
android {
...
defaultConfig { ... }
signingConfigs {
release {
storeFile file("myreleasekey.keystore")
storePassword "password"
keyAlias "MyReleaseKey"
keyPassword "password"
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}}
Done.Good Luck!
答案 3 :(得分:7)
gradlew
(在Windows上gradlew.bat
)
adb install -r exampleApp.apk
(-r
使其替换现有副本,如果在模拟器上安装,则添加-s
我在~/.bash_profile
中设置了一个别名,使其成为2char命令。
alias bi="gradlew && adb install -r exampleApp.apk"
(构建和安装的缩写)
答案 4 :(得分:5)
用于在Linux上从Android Studio项目的命令行运行Gradle的Cheatsheet:
cd <project-root>
./gradlew
./gradlew tasks
./gradlew --help
应该让你开始..
答案 5 :(得分:4)
这是完整指南的尝试
任何一个
./gradlew
,如果运行Windows,则运行gradlew.bat
chmod +x ./gradlew
可能是必需的从现在开始,gradle
表示以您选择的任何一种方式运行Gradle。
相应地替换。
如果您手动安装了SDK
export ANDROID_HOME=<install location>
~/.profile
中接受许可:yes | sdkmanager
sdkmanager
可在$ANDROID_HOME/tools/bin
sdkmanager
可能必须以root用户身份运行尝试运行gradle
chown -R user:group $ANDROID_HOME
chmod 777 -R $ANDROID_HOME
gradle tasks
列出了所有可以运行的任务:app:[appname]
是所有任务的前缀,您将在Gradle中看到
建立时记录
一些基本任务
gradle assemble
:构建您应用的所有变体
app/[appname]/build/outputs/apk/[debug/release]
gradle assembleDebug
或assembleRelease
:仅构建调试或发布版本gradle installDebug
或installRelease
构建并安装到连接的设备
adb devices
,检查您的设备是否已列出,并且 device
在旁边根据更改自动构建并安装
这避免了必须连续运行相同的命令
gradle -t --continue installDebug
-t
:又名--continuous
,在文件更改后自动重新运行任务--continue
:出现错误后继续。防止发生错误时停止gradle -h
以获取更多帮助答案 6 :(得分:2)
对于Mac,请使用此命令
./gradlew task-name
答案 7 :(得分:0)
仅适用于MAC用户
扩展Vji的答案。
一步一步的程序:
复制并粘贴此命令,然后按Enter键:
chmod +x gradlew
正如Vji建议:
./gradlew task-name
不要忘记添加。(DOT)之前/ gradlew
答案 8 :(得分:0)
enter code here
使用gradle和adb命令创建脚本文件,执行脚本文件
./gradlew clean
./ gradlew assembleDebug ./gradlew installDebug
adb shell开始-n applicationID /启动器活动的完整路径
答案 9 :(得分:0)
Official Documentation is here:
要构建调试APK,请打开命令行并导航至项目目录的根目录。要启动调试版本,请调用assembleDebug
任务:
gradlew assembleDebug
这将在module_name-debug.apk
中创建一个名为project_name/module_name/build/outputs/apk/
的APK。
答案 10 :(得分:0)
请注意,您也可以在Android Studio中通过单击gradle窗口,然后单击“ elephant”按钮来执行此操作。这将打开一个名为“运行任何内容”的新窗口(也可以通过在“随处搜索”中搜索该名称来找到),您可以在其中手动键入所需的任何gradle命令。不是“相当”命令行,但通常会提供更多信息我需要的不是Windows命令行。
这使您可以为gradle任务等提供可选参数。
答案 11 :(得分:0)
我也遇到了同样的问题,google 好像做了很多改动。
我可以告诉你从头开始完全通过命令行安装的步骤。 我于 2021 年 2 月 22 日在 Ubuntu 上对其进行了测试。
export ANDROID_SDK_ROOT=/usr/lib/android-sdk
sudo mkdir -p $ANDROID_SDK_ROOT
sudo apt-get install openjdk-8-jdk
转到https://developer.android.com/studio/index.html 然后只到命令行工具 点击Linux链接,接受协议而不是下载右键复制链接地址
cd $ANDROID_SDK_ROOT
sudo wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
sudo unzip commandlinetools-linux-6858069_latest.zip
将解压后的目录从cmdline-tools重命名为tools, 并将其放在 $ANDROID_SDK_ROOT/cmdline-tools 下, 所以现在它应该看起来像:$ANDROID_SDK_ROOT/cmdline-tools/tools。 在里面,你应该有:NOTICE.txt bin lib source.properties。
PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/cmdline-tools/tools/bin
这对我没有影响,因此下一步
cd $ANDROID_SDK_ROOT/cmdline-tools/tools/bin
yes | sudo sdkmanager --licenses
最后,在你的项目中运行这个
sudo ./gradlew assembleDebug
这会在 //build/outputs/apk/debug 处创建一个名为 -debug.apk 的 APK 该文件已经用调试密钥签名并与 zipalign 对齐, 这样您就可以立即将其安装到设备上。
这是最后的步骤。使用这些内容制作 2 个 .sh 文件。在两者之前使用 chmod 777
。不需要 sudo。
下载_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 . . . #################################################"
./gradlew assembleDebug
echo "####################################### Building APK Done. . . ############################################"
echo "##################################### APK generated here: $currentDir/app/build/outputs/apk/debug/app-debug.apk ###################################"
##########################################################
运行这些命令。
chmod 777 Download_APK_Code_NOSUDO4.sh
chmod 777 Build_App_NOSUDO4.sh
./Download_APK_Code_NOSUDO4.sh
./Build_App_NOSUDO4.sh
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
///////////////////////////////////
以下是通过 Powershell 用于 Windows 的步骤。 2021 年 3 月 6 日测试。您可以完全从头开始。
先决条件
使用这些内容制作文件 DownloadAndBuild.ps1。
$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
右键单击并通过 Powershell 运行。 这将通过 git 下载一个 Android 项目,安装 SDK 并构建 Android 应用程序。
根据您的方便进行编辑。
答案 12 :(得分:0)
MacOS 变体
./gradlew <moduleName>:assemble<build_variant>
//e.g
./gradlew <moduleName>:assembleDebug
*./
表示当前目录
答案 13 :(得分:-2)
为所有这些答案增加价值,
许多人在构建成功后就要求在AVD中运行App的命令。
adb install -r {path-to-your-bild-folder}/{yourAppName}.apk