好的,我们来详细梳理一下 Android 开发中 Gradle 的常用配置和调试命令。这对于每一位 Android 开发者来说都是必须掌握的核心技能。
gradlew
) 的概念在开始具体命令之前,必须先理解两个关键概念:
gradlew
,在 Windows 上是 gradlew.bat
)。它的核心目的是保证项目在任何机器上都能使用正确的 Gradle 版本进行构建,而无需开发者手动安装指定版本的 Gradle。为什么要用 ./gradlew
而不是本地的 gradle
命令?
gradle
命令可能会因版本差异导致构建失败或行为不一致。gradlew
会自动检查并下载项目所需的特定版本(定义在 gradle/wrapper/gradle-wrapper.properties
文件中),确保所有开发者构建环境一致。./gradlew
即可,大大降低了环境搭建的复杂度。注意:在命令行中执行 gradlew
时,Unix/Linux/macOS 系统需要加上 ./
前缀(表示当前目录下的可执行文件),而 Windows 系统则直接使用 gradlew
或 gradlew.bat
。
以下命令均以 Unix 系统的 ./gradlew
为例,Windows 用户请自行替换为 gradlew
。
./gradlew -v
或 ./gradlew --version
./gradlew tasks
assembleDebug
, installDebug
, lint
等所有任务及其描述。./gradlew tasks --all
./gradlew help
gradlew
命令的基本用法。构建命令是日常开发中最常用的。
./gradlew assemble
./gradlew assembleDebug
assemble
+ Debug
变体。app/build/outputs/apk/debug/
目录下。Debug 包包含调试信息,允许调试器连接,并且通常没有代码混淆。./gradlew assembleRelease
assemble
+ Release
变体。./gradlew :app:assembleDebug
或 ./gradlew :skWeiChatBaidu:assembleDebug
:
用来分隔子项目(模块)。app
是默认的主模块名,如果你的项目有多个模块(例如一个名为 skWeiChatBaidu
的 library 模块),你需要指定模块名来单独构建它。./gradlew build
assemble
+ check
。它会编译代码、运行所有测试(单元测试和仪器化测试)、并生成所有输出包。assemble
更彻底。./gradlew clean
build
目录及其下的所有构建输出文件。clean
可以清除旧的构建缓存,然后重新构建 (build
) 往往能解决这些问题。它相当于一个“重启”构建的过程。./gradlew clean build
或 ./gradlew clean assembleDebug
clean
,再执行 build
或 assembleDebug
。
./gradlew installDebug
assembleDebug
,所以会先构建 APK。assembleDebug
然后找到 APK 文件双击安装要快得多。./gradlew uninstallDebug
./gradlew run
installDebug
+ 启动应用的主 Activity。这是最快捷的运行方式。当构建失败时,这些命令是救命稻草。
./gradlew [task] --info
--info
来获取更多细节。./gradlew [task] --debug
--info
仍然不够,你需要最深层次的日志来定位复杂问题(如依赖冲突、插件问题)时使用。日志会非常长,建议输出到文件再分析(例如 ./gradlew build --debug > build_log.txt
)。./gradlew [task] --stacktrace
--stacktrace
可以显示出错误发生在哪一行代码、哪个插件、哪个任务中,是定位问题根源的关键。对于快速诊断,通常先用它。./gradlew [task] --scan
./gradlew dependencies
configuration
(如 implementation
, api
, debugImplementation
)下的直接和传递依赖。ClassNotFoundException
, NoSuchMethodError
或版本冲突时,使用此命令查看依赖树,找到是哪个库引入了不期望的版本。可以指定模块和配置,如 ./gradlew :app:dependencies --configuration releaseRuntimeClasspath
。./gradlew androidDependencies
./gradlew installDebug
或 ./gradlew run
(一键安装运行)--stacktrace
: ./gradlew installDebug --stacktrace
./gradlew clean
(清理旧缓存)./gradlew build --stacktrace
(重新完整构建并打印堆栈)--debug
或 --scan
进行深度分析。./gradlew clean build
(清理并执行完整构建和所有测试)./gradlew assembleRelease
(生成发布包)./gradlew :app:dependencies > dependencies.txt
(将依赖树输出到文件方便查看)dependencies.txt
中搜索 ->
或冲突的版本号。命令 | 作用 | 使用场景 |
---|---|---|
./gradlew -v | 查看 Gradle 版本 | 确认构建环境版本 |
./gradlew tasks | 列出所有可运行任务 | 查看项目能做什么构建操作 |
./gradlew assembleDebug | 生成调试包 | 日常开发,生成调试APK |
./gradlew installDebug | 安装调试版到设备 | 快速在设备上安装应用 |
./gradlew run | 安装并启动应用 | 最快捷的运行方式 |
./gradlew clean | 清理构建输出 | 解决构建问题前“重启”一下 |
./gradlew build | 完整构建(含测试) | 提交前或发布前的完整检查 |
./gradlew [task] --stacktrace | 打印失败堆栈 | 最常用的构建失败调试选项 |
./gradlew [task] --scan | 生成在线构建报告 | 深度分析复杂的构建问题 |
./gradlew dependencies | 显示项目依赖树 | 解决依赖冲突的根本手段 |
掌握这些命令,你就能从容应对 Android 项目开发中绝大多数与构建和调试相关的挑战。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。