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 命令前有稳定的网络连接。
    作者:帅得不敢出门
相关推荐
ANYOUZHEN8 小时前
bugku shell
android
0wioiw010 小时前
Onesignal(Xcode)
ide·macos·xcode
南宫码农11 小时前
我的电视 - Android原生电视直播软件 完整使用教程
android·开发语言·windows·电视盒子
道亦无名11 小时前
音频数据特征值提取 方法和步骤
android·音视频
Lancker11 小时前
定制侠 一个国产纯血鸿蒙APP的诞生过程
android·华为·智能手机·鸿蒙·国产操作系统·纯血鸿蒙·华为鸿蒙
2601_9498095913 小时前
flutter_for_openharmony家庭相册app实战+通知设置实现
android·javascript·flutter
液态不合群14 小时前
【面试题】MySQL 中 count(*)、count(1) 和 count(字段名) 有什么区别?
android·数据库·mysql
雪球Snowball15 小时前
【Android关键流程】资源加载
android
2501_9159184115 小时前
常见 iOS 抓包工具的使用,从代理抓包、设备抓包到数据流抓包
android·ios·小程序·https·uni-app·iphone·webview
zzh_my16 小时前
Visual Studio 2022介绍
ide·visual studio