MacOS下Android Studio运行Flutter项目报错Flutter SDK not found
问题根因
你贴出的android/app/build.gradle开头代码存在书写错误:代码中指定加载的属性文件是key.properties(通常用于存储应用签名配置),而非存储Flutter、Android SDK路径的local.properties文件,构建时自然读取不到flutter.sdk配置项,直接抛出对应报错。
iOS端(Xcode)构建完全不依赖Android目录下的Gradle配置,因此可以正常运行;flutter doctor检测结果、IDE内SDK配置、local.properties文件内容、模块依赖配置你都已经配置正确,和本次报错无关。
修复方案
- 打开项目路径下的
android/app/build.gradle文件,定位到开头的属性加载代码块,将错误的文件名修正,正确的基础加载逻辑如下:
def localProperties = new Properties() // 原代码此处写为'key.properties',是报错的核心原因 def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { localPropertiesFile.withReader('UTF-8') { reader -> localProperties.load(reader) } } def flutterRoot = localProperties.getProperty('flutter.sdk') if (flutterRoot == null) { throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") }
- 如果你需要配置应用签名,单独编写
key.properties的加载逻辑,不要和local.properties的加载逻辑复用同一个属性对象,避免配置覆盖,示例代码:
// 单独加载签名配置,和本地环境配置隔离 def keyProperties = new Properties() def keyPropertiesFile = rootProject.file('key.properties') if (keyPropertiesFile.exists()) { keyPropertiesFile.withReader('UTF-8') { reader -> keyProperties.load(reader) } }
- 修改完成后,在项目根目录执行
flutter clean清理旧构建缓存,重新触发Android端构建即可正常运行。
内容的提问来源于stack exchange,提问作者Max90
相关产品推荐
相关产品推荐

