Flutter Android构建报错:无法找到gradlew.bat文件
错误信息
Could not run phased build action using connection to Gradle distribution 'https://services.gradle.org/distributions/gradle-7.4.2-bin.zip'.
org.gradle.api.internal.tasks.DefaultTaskContainer$TaskCreationException: Could not create task ':generateLockfiles'.
Could not create task ':generateLockfiles'.
A problem occurred starting process 'command 'C:\src\App\Nimmadhi\android/gradlew.bat''
Could not start 'C:\src\App\Nimmadhi\android/gradlew.bat'
Cannot run program "C:\src\App\Nimmadhi\android/gradlew.bat" (in directory "C:\src\App\Nimmadhi\android"): CreateProcess error=2, The system cannot find the file specified
CreateProcess error=2, The system cannot find the file specified
已知条件:flutter doctor检测正常,Java运行环境无异常。
解决步骤
检查Gradle wrapper文件是否存在
进入项目的android目录,确认是否有gradlew.bat(Windows)或gradlew(Linux/macOS)文件,以及gradle/wrapper目录下的gradle-wrapper.jar和gradle-wrapper.properties文件。如果这些文件缺失,就是问题根源。重新生成Gradle wrapper
打开终端,切换到项目的android目录:cd android执行以下命令生成对应版本的wrapper文件:
gradle wrapper --gradle-version 7.4.2若本地没有Gradle环境,也可以通过Flutter命令触发自动修复:
flutter clean flutter pub get flutter run执行后Flutter会自动下载并配置所需的Gradle wrapper文件。
检查.gitignore配置
查看项目根目录的.gitignore文件,确认是否包含了gradlew、gradlew.bat或gradle/wrapper相关的忽略规则。如果有,移除这些规则,将wrapper文件提交到仓库,避免后续克隆项目时再次出现文件缺失的问题。手动补全wrapper文件
若上述方法无效,可手动下载Gradle 7.4.2版本,将gradle-wrapper.jar和gradle-wrapper.properties放到android/gradle/wrapper目录下,同时确保gradlew.bat(Windows)文件存在。Linux/macOS用户还需给gradlew添加执行权限:chmod +x gradlew
内容的提问来源于stack exchange,提问作者Nikil

