B. *_*son 129 command-line gradle android-studio android-gradle-plugin
我想构建一个Android Studio应用程序(Gradle构建系统),但我想通过命令行执行此操作.
Fue*_*Fro 176
Android Studio会在项目的根目录中自动创建Gradle包装器,这就是它调用Gradle的方式.包装器基本上是一个调用实际Gradle二进制文件的脚本,并允许您使Gradle保持最新,这使得使用版本控制更容易.要运行Gradle命令,只需使用gradlew项目根目录(或gradlew.batWindows)中的脚本,然后使用要运行的任务的名称.例如,要构建Android应用程序的调试版本,可以./gradlew assembleDebug从存储库的根目录运行.在默认项目设置中,可以在中找到生成的apk app/build/outputs/apk/app-debug.apk.在*nix机器上find . -name '*.apk',如果不存在,您也可以运行以找到它.
sup*_*org 24
试试这个(仅限OS X):
brew install homebrew/versions/gradle110
gradle build
您可以使用gradle tasks查看当前项目的所有可用任务.没有Android Studio这里需要.
Dha*_*ani 21
使用Gradle构建设置构建应用程序有两种构建类型:一种用于调试应用程序 - 调试 - 一种用于构建最终包以用于发布 - 发布模式.
编辑build.gradle文件以在发布模式下构建项目:
android {
...
defaultConfig { ... }
signingConfigs {
release {
storeFile file("myreleasekey.keystore")
storePassword "password"
keyAlias "MyReleaseKey"
keyPassword "password"
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}}
Run Code Online (Sandbox Code Playgroud)Done.Good运气!
gradlew
Run Code Online (Sandbox Code Playgroud)
(在Windows上gradlew.bat)
adb install -r exampleApp.apk
Run Code Online (Sandbox Code Playgroud)
(-r使其替换现有副本,-s在模拟器上添加if安装)
我在my中设置了一个别名~/.bash_profile,使其成为2char命令.
alias bi="gradlew && adb install -r exampleApp.apk"
Run Code Online (Sandbox Code Playgroud)
(构建和安装的缩写)
我遇到了同样的问题,谷歌似乎已经做了很多改变。
我可以告诉您从头开始纯粹通过命令行安装的步骤。我于 2021 年 2 月 22 日在 Ubuntu 上测试了它。
export ANDROID_SDK_ROOT=/usr/lib/android-sdk
sudo mkdir -p $ANDROID_SDK_ROOT
Run Code Online (Sandbox Code Playgroud)
sudo apt-get install openjdk-8-jdk
Run Code Online (Sandbox Code Playgroud)
转到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
Run Code Online (Sandbox Code Playgroud)
将解压后的目录从 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
Run Code Online (Sandbox Code Playgroud)
这对我没有影响,因此下一步
cd $ANDROID_SDK_ROOT/cmdline-tools/tools/bin
Run Code Online (Sandbox Code Playgroud)
yes | sudo sdkmanager --licenses
Run Code Online (Sandbox Code Playgroud)
最后,在您的项目中运行它
chmod 777 gradlew
sudo ./gradlew assembleDebug
Run Code Online (Sandbox Code Playgroud)
这会在 //build/outputs/apk/debug 处创建一个名为 -debug.apk 的 APK 文件已使用调试密钥进行签名并与 zipalign 对齐,因此您可以立即将其安装到设备上。
这是最后的步骤。使用这些内容创建 2 个 .sh 文件。在两者上都使用chmod 777之前。不需要 sudo。
下载_APK_代码_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 . . . ####################################"
Run Code Online (Sandbox Code Playgroud)
构建_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 ###################################"
##########################################################
Run Code Online (Sandbox Code Playgroud)
运行这些命令。
chmod 777 Download_APK_Code_NOSUDO4.sh
chmod 777 Build_App_NOSUDO4.sh
./Download_APK_Code_NOSUDO4.sh
./Build_App_NOSUDO4.sh
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
右键单击并通过 Powershell 运行。这将通过 git 下载 Android 项目、安装 SDK 并构建 Android 应用程序。
根据您的方便进行编辑。
用于在Linux上的Android Studio项目中从命令行运行Gradle的备忘单:
cd <project-root>
./gradlew
./gradlew tasks
./gradlew --help
Run Code Online (Sandbox Code Playgroud)
应该让您开始。
小智 5
这是完整指南的尝试
要么
./gradlew,或者gradlew.bat在Windows上
chmod +x ./gradlew 可能是必要的从现在开始,gradle无论您选择哪种方式,均指运行Gradle。相应地替换。
如果您手动安装了SDK
export ANDROID_HOME=<install location>~/.profile如果未自动完成,则可能需要将其放入接受许可证: yes | sdkmanager
sdkmanager 可以在 $ANDROID_HOME/tools/binsdkmanager 可能必须以root身份运行尝试跑步 gradle
chown -R user:group $ANDROID_HOMEchmod 777 -R $ANDROID_HOMEgradle tasks 列出所有可以运行的任务:app:[appname] 是所有任务的前缀,在构建时会在Gradle日志中看到
一些基本任务
gradle assemble:构建您应用的所有变体
app/[appname]/build/outputs/apk/[debug/release]gradle assembleDebug或assembleRelease:仅构建调试或发行版本gradle installDebug或installRelease构建并安装到连接的设备
adb devices,检查您的设备是否已列出并且设备在旁边更改后自动构建和安装
这样避免了必须连续运行相同的命令
gradle -t --continue installDebug
Run Code Online (Sandbox Code Playgroud)
-t:aka --continuous,更改文件后自动重新运行任务--continue:出现错误后继续。防止发生错误时停止gradle -h更多的帮助通过命令行构建Android应用程序
MacOS 版本
./gradlew <moduleName>:assemble<build_variant>
//e.g
./gradlew <moduleName>:assembleDebug
Run Code Online (Sandbox Code Playgroud)
*./表示当前目录
| 归档时间: |
|
| 查看次数: |
122735 次 |
| 最近记录: |