build.gradle抛出Flutter SDK未找到异常,应用却可正常运行的问题求助
问题原因解析
你的应用能在模拟器和Chrome正常运行,是因为Flutter调试这两个平台时,直接通过Flutter CLI启动,没有触发完整的Android Gradle构建流程,所以不会执行到build.gradle里检查flutterRoot的代码段。而调试器抛出异常,是因为IDE在自动同步Gradle或者你触发Android相关构建操作时,Gradle会读取local.properties并检查Flutter SDK路径,这时候出现了读取或匹配问题。
解决步骤
强制刷新Gradle依赖与同步
Windows环境下命令行执行:gradlew.bat clean build --refresh-dependencies或者在Android Studio中点击
File → Sync Project with Gradle Files,强制Gradle重新读取配置文件。验证IDE的Flutter SDK配置
打开Android Studio的Settings → Languages & Frameworks → Flutter,确认配置的SDK路径和local.properties里的flutter.sdk=C:\\Users\\GNG\\code\\flutter完全一致。IDE可能存在缓存,没有及时读取local.properties的更新。检查local.properties文件权限
确保当前用户对local.properties有读写权限,部分系统环境下权限不足会导致Gradle无法读取文件内容,进而判定flutterRoot为空。清除IDE缓存
点击File → Invalidate Caches...,勾选Clear file system cache and local history,然后重启IDE,彻底清除可能存在的配置缓存。临时应急方案(不推荐长期使用)
在android/build.gradle中直接硬编码flutterRoot路径,替换原有的读取逻辑:def flutterRoot = "C:\\Users\\GNG\\code\\flutter" if (flutterRoot == null) { throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") }注意:执行
flutter pub get后这段代码可能会被覆盖,仅用于临时验证问题。
内容的提问来源于stack exchange,提问作者Hafiz muhammad Ibrahim jaffar

