gradlew是gradlewrapper的缩写,对gradle的命令进行了包装,比如我们进入到指定Module目录并执行“gradlew assemble”即可完成对当前Module的构建(Windows系统下)。

这种错误,一般是没有配置gradle的环境变量,打开项目里面gradle-wrapper.properties,查看使用的版本

在Androidstudio设置中找到gradle的缓存路径,然后打开wrapper/dists

Windows 下 gradlew 不是内部或外部命令:正确运行 Gradle Wrapper 的方法

问题现象

在 Windows 的 CMD 或 PowerShell 中构建 Android 项目时,执行 gradlew assembleDebug 后出现:

gradlew 不是内部或外部命令,也不是可运行的程序或批处理文件。

这通常不是 Gradle 没有配置环境变量,而是命令执行位置或调用方式不正确。

先理解:gradlew 和 gradle 有什么区别?

gradle 是系统安装的 Gradle 命令,需要配置环境变量。gradlew 是项目自带的 Gradle Wrapper,会根据项目的 gradle/wrapper/gradle-wrapper.properties 自动下载并使用指定版本的 Gradle。

因此,日常构建 Android 项目优先使用 gradlew。它可以保证团队成员和 CI 使用相同的 Gradle 版本,不需要为 gradlew 单独配置 GRADLE_HOME。

正确做法:在项目根目录执行

先进入包含 gradlew.bat、gradlew、settings.gradle 或 settings.gradle.kts 的项目根目录。

PowerShell:

.\gradlew.bat assembleDebug

也可以使用:

.\gradlew assembleDebug

CMD:

gradlew.bat assembleDebug

如果需要构建 Release 包,将 assembleDebug 改成 assembleRelease。

为什么直接输入 gradlew 会失败?

PowerShell 默认不会从当前目录查找可执行文件。即使 gradlew.bat 就在当前目录,也必须使用 .\ 前缀明确指定当前目录。CMD 的行为不同,但显式使用 gradlew.bat 更清晰,也更容易排查。

检查项目是否包含 Wrapper

项目根目录应至少包含以下文件:

  • gradlew
  • gradlew.bat
  • gradle/wrapper/gradle-wrapper.properties

如果这些文件缺失,说明项目没有提交 Wrapper。此时可在已安装 Gradle 的环境中执行 gradle wrapper 生成,再将生成的文件提交到版本控制。

常见排查

1. 在错误目录执行

不要在某个 module 目录内直接执行命令。先返回项目根目录,再运行 Wrapper。

2. 第一次下载依赖失败

Wrapper 首次运行需要下载 Gradle 发行包,同时 Android 构建还会下载依赖。检查网络、代理、镜像源和公司证书配置。

3. Java 版本不匹配

Gradle 与 Android Gradle Plugin 对 JDK 有版本要求。可先执行 java -version,再根据项目配置选择 Android Studio 使用的 JDK。

4. 文件被权限或安全软件拦截

确认 gradlew.bat 未被阻止,项目目录具备读写权限;必要时以普通管理员权限重新打开终端。

验证命令

在项目根目录执行:

.\gradlew.bat --version

若能显示 Gradle、JVM 和操作系统信息,说明 Wrapper 已可正常使用。

总结

遇到 gradlew 找不到时,不要急着配置 Gradle 环境变量。优先确认自己位于项目根目录,并在 PowerShell 中使用 .\gradlew 或 .\gradlew.bat 执行。只有项目缺少 Wrapper 文件时,才需要补充生成 Wrapper 或改用系统安装的 gradle 命令。

找到如下目录

配置为GRADLE_4.4_HOME,然后在path中增加一项%GRADLE_4.4_HOME%\bin,确定退出,gradle环境就配置完成了

 

验证一下

这里有一个坑, gradlew在项目根目录下才有效,如果进入到module中是无效的

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐