Flutter降级SDK至3.13.9后,多环境+指定入口运行报错
Flutter SDK降级至3.13.9后
flutter run命令执行失败问题排查 问题描述
在另一台设备上运行Flutter项目,原使用Flutter SDK 3.16.8,因需求降级至3.13.9后,执行指定flutter run命令时触发ProcessException: No such file or directory错误。
执行命令
flutter run --flavor dev -t "lib/dev_main.dart"
错误信息
[+33149 ms] ProcessException: No such file or directory Command: /Users/usr/AndroidStudioProjects/project_name/android/gradlew --full-stacktrace --info -Pverbose=true -Ptarget-platform=android-arm64 -Ptarget=/Users/usr/AndroidStudioProjects/project_name/lib/dev_main.dart -Pbase-application-name=android.app.Application -Pdart-defines=RkxVVFRFUl9XAAAfQVVUT19ERAAAA1Q9dHJ1ZQ==,RkxVVFRFUl9XRUJfQ0FOVkFTS0lUX1AAAA1odHRwczovL3d3dy5nc3RhdQljLmNvbS9mbWW0dGVyLWNhbnZhc2tpdC8wCCC1Zjg3MDVkZjMwMTg3N2Q3ODcxMDdiYWMxBBBlOWZjOWVlMWFkLw== -Pdart-obfuscation=false -Ptrack-widget-creation=true -Ptree-shake-icons=false -Pfilesystem-scheme=org-dartlang-root assembleDevDebug
堆栈跟踪
[ +7 ms] #0 throwToolExit (package:flutter_tools/src/base/common.dart:10:3) #1 RunCommand.runCommand (package:flutter_tools/src/commands/run.dart:760:9) #2 FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1297:27) #3 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19) #4 CommandRunner.runCommand (package:args/command_runner.dart:212:13) #5 FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:339:9) #6 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19) #7 FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:285:5) #8 run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:115:9) #9 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19) #10 main (package:flutter_tools/executable.dart:90:3)
已尝试的解决方案
- 清理并重建项目
- 重启并重新导入项目
- 重新下载并配置Flutter SDK 3.13.9
- 在技术社区及AI工具中搜索解决方案
- 重新配置Mac系统
.zprofile中的环境路径 - 重新配置Android Studio相关设置
可行修复方案
1. 检查gradlew文件权限与存在性
进入项目的android目录,确认gradlew文件是否存在:
- 若不存在,从同项目的正常运行副本中复制该文件
- 若存在,执行命令赋予执行权限:
chmod +x /Users/usr/AndroidStudioProjects/project_name/android/gradlew
2. 同步Flutter与Android Gradle插件版本
降级Flutter SDK后需匹配对应Gradle版本:
- 打开
android/build.gradle,修改插件版本:
dependencies { classpath 'com.android.tools.build:gradle:7.4.2' // Flutter 3.13.x适配版本 // 其他依赖项 }
- 打开
android/gradle/wrapper/gradle-wrapper.properties,修改Gradle分发版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
3. 彻底清理缓存
执行以下命令清除Flutter与Gradle缓存:
flutter clean rm -rf ~/.gradle/caches cd android && ./gradlew clean
回到项目根目录执行flutter pub get后,重新尝试运行命令。
4. 验证环境变量配置
确保JAVA_HOME和ANDROID_HOME指向兼容版本(推荐JDK 11),执行命令验证:
echo $JAVA_HOME echo $ANDROID_HOME
内容的提问来源于stack exchange,提问作者Akshay
相关产品推荐
相关产品推荐

