我想构建一个 Android Studio 应用程序(Gradle 构建系统) ,但是我想通过命令行来完成。
Android Studio 会自动在项目的根目录中创建一个 包装纸,这就是它调用 Gradle 的方式。这个包装器基本上是一个脚本,它调用实际的 Gradle 二进制文件,并允许您使 Gradle 保持最新,这使得使用版本控制更加容易。要运行 Gradle 命令,只需使用项目根目录(或 Windows 上的 gradlew.bat)中的 gradlew脚本,后面跟着要运行的任务的名称。例如,要构建 Android 应用程序的调试版本,可以从存储库的根运行 ./gradlew assembleDebug。在默认的项目设置中,生成的 apk 可以在 app/build/outputs/apk/app-debug.apk中找到。在 * nix 机器上,如果它不存在,也可以运行 find . -name '*.apk'来查找它。
gradlew.bat
gradlew
./gradlew assembleDebug
app/build/outputs/apk/app-debug.apk
find . -name '*.apk'
试试这个(仅限 OS X) :
brew install homebrew/versions/gradle110 gradle build
brew install homebrew/versions/gradle110
gradle build
您可以使用 gradle tasks查看当前项目的所有可用任务。这里不需要 Android Studio。
gradle tasks
Android Studio
有两种构建类型可以使用 Gradle 构建设置来构建应用程序: 一种用于调试应用程序ーー调试ーー,另一种用于构建用于发布ーー发布模式的最终包。
首先使用 CMD 导航到 Android 工作室项目 Root 文件夹
运行此命令 < strong > gradlew.bat Assembly bleDebug
输出窗口如下所示
编辑 build.gradle 文件,以发布模式构建项目:
android { ... defaultConfig { ... } signingConfigs { release { storeFile file("myreleasekey.keystore") storePassword "password" keyAlias "MyReleaseKey" keyPassword "password" } } buildTypes { release { ... signingConfig signingConfigs.release } }}
从命令行为 Linux 上的 Android Studio 项目运行 Gradle 的备忘录:
cd <project-root> ./gradlew ./gradlew tasks ./gradlew --help
应该可以让你开始. 。
(在 Windowsgradlew.bat上)
adb install -r exampleApp.apk
(-r使其替换现有的副本,如果在模拟器上安装,则添加 -s)
-r
-s
我在 ~/.bash_profile中设置了一个别名,使其成为一个2char 命令。
~/.bash_profile
alias bi="gradlew && adb install -r exampleApp.apk"
(生成和安装的简称)
对于 Mac 使用这个命令
./gradlew task-name
只对 MAC 用户开放
扩展 维吉的答案。
循序渐进的程序:
复制并粘贴此命令,然后按回车键:
chmod +x gradlew
As Vji suggested:
- 别忘了加上-在 Gradlew 之前
为这些答案增加价值,
许多人要求在 AVD 中运行应用程序的命令后构建成功。
adb install -r {path-to-your-bild-folder}/{yourAppName}.apk
都行
./gradlew
chmod +x ./gradlew
从这一点开始,gradle指的是无论你选择哪种方式运行 Gradle。 相应地替换。
gradle
如果手动安装了 SDK
export ANDROID_HOME=<install location>
~/.profile
接受许可证: yes | sdkmanager --licenses
yes | sdkmanager --licenses
sdkmanager
$ANDROID_HOME/tools/bin
试试运行 gradle
chown -R user:group $ANDROID_HOME
chmod 777 -R $ANDROID_HOME
:app:[appname]
一些重要的任务
app/[appname]/build/outputs/apk/[debug/release]
gradle assembleDebug
assembleRelease
gradle installDebug
installRelease
adb devices
根据更改自动生成和安装
这样可以避免不断地运行相同的命令
gradle -t --continue installDebug
-t
--continuous
--continue
gradle -h
创建脚本文件,使用以下 gradle 和 adb 命令,执行脚本文件
./gradlew clean
./gradlew 程序集 Debug ./gradlew installDebug
Adb shell am start-n applicationID/启动程序活动的完整路径
官方文件如下:
若要生成调试 APK,请打开命令行并导航到项目目录的根目录。要启动调试构建,请调用 assembleDebug任务:
assembleDebug
gradlew assembleDebug
这将在 project_name/module_name/build/outputs/apk/中创建一个名为 module_name-debug.apk的 APK。
project_name/module_name/build/outputs/apk/
module_name-debug.apk
注意,你也可以在 Android Studio 中通过点击“渐变”窗口,然后点击“大象”按钮来完成。这将打开一个名为“ run anything”的新窗口(也可以通过在“ search where”中搜索该名称来找到) ,在这个窗口中你可以手动键入任何你想要的 gradle 命令。不是“非常”命令行,但通常比 Windows 命令行提供更多我需要的东西。
这允许你给分级任务等提供可选的参数。
我面临着同样的问题,似乎有很多变化的谷歌。
我可以告诉您从头开始纯粹通过命令行安装的步骤。 我在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
访问 < a href = “ https://developer.android.com/Studio/index.html”rel = “ norefrer”> 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
最后,在项目中运行此命令
chmod 777 gradlew sudo ./gradlew assembleDebug
这将在//build/output/APK/debug 创建一个名为-debug. APK 的 APK 文件已经用调试键签名,并与 zipalign 对齐, 所以你可以马上把它安装到设备上。
下面是最后的步骤。使用这些内容创建2.sh 文件。在这两个文件之前使用 chmod 777。不需要 sudo。
chmod 777
下载 _ 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 ###################################" ##########################################################
运行这些命令。
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 命令行工具 sdkmanager 总是显示: 警告: 无法创建设置
“由于部分许可证未被接受,未能安装以下 Android SDK 软件包”错误
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 应用程序。
根据你的方便来编辑。
MacOS 变种
./gradlew <moduleName>:assemble<build_variant> //e.g ./gradlew <moduleName>:assembleDebug
* abc 0代表工作目录
[更多信息]