我已经成功跑起来了,只用命令行就可以打包。用任何一个ide都可以写代码,尤其是ai时代。我这里克隆了一个开源的安卓项目,想把它在我电脑上打包成apk,以下是需要的环境。
安装Android SDK
使用Command line tools only
我用的是这个方法
步骤 1:下载 Android SDK 命令行工具
-
访问:https://developer.android.com/studio#command-line-tools-only
-
下载 Command line tools only 的 Windows 版本
步骤 2:安装 SDK
假设下载后解压到 C:\android-sdk(安装到哪都行,这只做示范),然后运行:(重点是两个环境变量弄好,步骤2和3都要在命令行里跑)
# 设置环境变量
$env:ANDROID_HOME = "C:\android-sdk"
$env:ANDROID_SDK_ROOT = "C:\android-sdk"
# 安装需要的 SDK 组件
sdkmanager "platforms;android-36" "build-tools;36.0.0" "platform-tools"
步骤 3:接受许可证
sdkmanager --licenses
输入 y 接受所有许可证。
更简单的方法:使用 scoop 安装
这个我没用过
如果你安装了 scoop,可以一键安装:
# 安装 android-sdk
scoop install android-sdk
# 安装需要的 SDK 版本
sdkmanager "platforms;android-36" "build-tools;36.0.0" "platform-tools"
# 接受许可证
sdkmanager --licenses
检查 Java 是否安装
另外,构建 Android 项目还需要 Java,自行查看是否已安装:
检查结果
需要看项目要求 Java 几。这里举例java 17
需要安装 Java xx版
你可以从以下途径下载:
-
Oracle JDK 17 :https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html
-
OpenJDK 17 (免费):https://adoptium.net/
-
使用 scoop(如果已安装):
scoop install java17
安装后确保 JAVA_HOME 环境变量指向 Java 17。这里要在环境变量设置,不会问ai或者查"java设置环境变量"
总结:你需要安装的内容
| 组件 | 状态 | 说明 |
|---|---|---|
| Gradle | ✅ 已就绪 | 通过 Gradle Wrapper |
| Java | ❌ 需要 Java 17 | 当前是 Java 11 |
| Android SDK | ❌ 未安装 | 需要 API 36 |
安装完 Java 17 和 Android SDK 后,基本环境就完成了,开始安装gradle,这是个安卓新的构建工具,以前老项目是用Maven,现在基本都用gradle
将 Wrapper 下载地址改为国内镜像
将 gradle/wrapper/gradle-wrapper.properties 中的分发地址改为:
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.14-bin.zip
修改后就可以用命令运行 .\gradlew.bat assembleDebug 打包了,速度很快。
运行gradlew相关的命令都会自动安装Gradle,会自动下载Gradle的zip,自动安装。
安装成功后可以用命令来看安装的版本,有的话就可以用打包命令了。但是这时候有个最麻烦的问题就是如果你的项目不在C盘,那就会报错,因为无法跨盘来打包。Gradle缓存默认在C盘,这时候必须用命令把Gradle的缓存放到和项目一个盘里。
set GRADLE_USER_HOME=D:.gradle gradlew assembleDebug 或者这个设置命令 $env:GRADLE_USER_HOME="G:\Project.gradle-user-home"
用了命令后最好在环境变量的系统变量里也设置上GRADLE_USER_HOME和它的位置,双重备份保险。
查看Gradle的位置echo %GRADLE_USER_HOME%
查看ANDROID_HOME和ANDROID_SDK_ROOT环境变量的地址
echo %ANDROID_HOME% echo %ANDROID_SDK_ROOT%
1. 查看项目所用Gradle版本
gradle -v(全局) 有时候不行,得用.\gradlew -v(局部) 想搞全局得在环境变量的Path搞 环境变量的Path 新增:%GRADLE_HOME%\bin
2. 停止所有Gradle守护进程(解决缓存异常、跨目录报错)
.\gradlew --stop
3. 全量清理项目构建缓存
.\gradlew clean --no-build-cache .\gradlew clean
清理顺带打包.\gradlew.bat clean :app:assembleDebug
4. 重新编译Debug
.\gradlew.bat assembleAppDebug --stacktrace .\gradlew.bat assembleAppDebug .\gradlew assembleAppDebug
5. 停止所有 Gradle 进程
taskkill /F /IM java.exe
这是gradle缓存被锁最后的终极绝招。
下面给两个打包的结果图,一个是错误没打包好,一个是正确打包成功。


打包失败会给你说哪块的文件里某行有问题,可以复制给ai,这个命令可以当做检测语法是否错误的命令。Task下面两个就是错误的文件
