Gradle命令编译Android Studio工程项目并签名

文章目录

gradlew命令

gradlew 是一个脚本文件,它允许你在没有全局安装 Gradle 的情况下运行 Gradle 构建。这个脚本在多平台上可用,对于 Windows 系统来说是 gradlew.bat 文件,而对于 Unix、Linux 和 macOS 系统来说则是 gradlew 脚本文件。

  1. ./gradlew build 这个命令会执行项目的构建过程,包括编译代码、运行测试等
  2. ./gradlew tasks 显示项目中所有可用的 Gradle 任务。
  3. ./gradlew clean 清除之前的构建输出,如编译后的类文件、JAR 文件等。
  4. ./gradlew assembleDebug 可以指定要运行的具体任务,例如 assembleDebug 用于构建调试版本的应用。
  5. ./gradlew build --offline 在没有网络连接的情况下使用缓存中的依赖项来构建项目。

命令行下进入Android Studio工程目录,所有命令都在这里执行

理论上直接输入./gradlew build就可以进行项目的构建过程,包括编译代码、运行测试等。

但是因为它包含的比较多,可能Android Stduio中能编译过的项目用指令后就出错了

复制代码
> Task :app:lintDebug FAILED
Lint found 61 errors, 1313 warnings. First failure:

/Users/temp/Documents/project/test/app/src/main/res/layout/activity_call_test.xml: Error: The lint detector
    androidx.appcompat.view.OnClickXmlDetector

The full lint text report is located at:
  /Users/temp/Documents/project/test/app/build/intermediates/lint_intermediate_text_report/debug/lint-results-debug.txt

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:lintDebug'.
> Lint found errors in the project; aborting build.

  Fix the issues identified by lint, or create a baseline to see only new errors:

android {

lint {

baseline = file("lint-baseline.xml")

}

}

复制代码

gradlew编译debug apk

./gradlew :app:assembleDebug

生成如下apk文件:

gradlew编译release apk

./gradlew :app:assembleRelease

apksigner签名apk

查看Android sdk目录下的build-tools

这里有多个版本,选一个就行,签名工具就是里面的apksigner

/Users/temp/Library/Android/sdk//build-tools/30.0.2/apksigner

写入脚本sign_apk.sh

shell 复制代码
#!/bin/bash

ANDROID_SDK=/Users/temp/Library/Android/sdk
echo $#

function usage {
    echo "$0 keystore alis pass apk"
}

if [ $# -ne 4 ]; then
    usage
    exit
fi

key=$1
alis=$2
pass=$3
apk=$4

echo "apksigner.jar sign --ks $key --ks-key-alias $alis --ks-pass pass:$pass --key-pass pass:$pass --out sign.apk $apk"
java -jar /Users/temp/Library/Android/sdk//build-tools/30.0.2/build-tools/30.0.2/apksigner sign --ks $key --ks-key-alias $alis --ks-pass pass:$pass --key-pass pass:$pass --out sign.apk $apk

假设sign_apk.sh放在 ~/Downloads目录下

签名文件是debug.keystore

别名是alias_name

密码是mypass

要签名的apk是app/build/intermediates/apk/debug/app-debug.apk

则对其签名命令如下:

bash 复制代码
 ~/Downloads/sign_apk.sh ./debug.keystore alias_name mypass .//app/build/intermediates/apk/debug/app-debug.apk

gradlew注意事项

  1. 在首次运行 gradlew 时,它会自动下载指定版本的 Gradle 并将其存储在本地缓存中,因此可能需要一些时间。
  2. 如果你的项目依赖于互联网上的资源(如远程仓库中的库),确保在运行 gradlew 命令前有稳定的网络连接。
    作者:帅得不敢出门
相关推荐
2401_8657213333 分钟前
御网杯初赛2026
android
葱段1 小时前
【Compose】输入框(TextField)点击空白处失焦并关闭软键盘
android
yz_aiks1 小时前
IDEA终端配置oh-my-zsh实战:安装、插件与日常使用技巧
java·ide·intellij-idea
小yu学编程1 小时前
IDEA 2025版本中如何设置包层级结构
java·ide·intellij-idea·层级结构
YXWik61 小时前
CodeGraph安装及在idea的claude code插件中使用
java·ide·intellij-idea
wbc103155582 小时前
基于 VSCode + Icarus 的 Verilog 编译和仿真
ide·vscode·编辑器
刮风那天3 小时前
Android Framework 核心架构图
android
__Witheart__3 小时前
3588 安卓编译空间不足报错
android
aaajj3 小时前
【Android】手机屏幕劫持防护
android·智能手机
写做四月一日的四月一日4 小时前
在安卓手机上安装小龙虾openclaw并配置QQ机器人接入
android·人工智能