升级Android Studio 4.2后Flutter构建APK出现FileSystemException: readSync failed错误的求助
解决Android Studio 4.2升级后Flutter应用无法运行的FileSystemException错误
你遇到的这个FileSystemException: readSync failed(errno=0)错误,本质是老版本Flutter master分支与Android Studio 4.2的Gradle工具链不兼容导致的,具体是在计算APK文件SHA值时出现了文件读取异常。下面是针对性的解决步骤:
1. 切换到Flutter稳定分支并升级
你当前使用的是7个月前的Flutter master分支旧版本(2.1.0-11.0.pre.29),开发分支的兼容性远不如稳定版,且未适配Android Studio 4.2的更新。执行以下命令切换到稳定分支并升级到最新版本:
flutter channel stable flutter upgrade
2. 更新项目Gradle配置
Android Studio 4.2需要匹配对应的Gradle版本,否则会出现构建流程冲突:
- 打开项目根目录下的
android/build.gradle,修改Gradle插件版本为兼容4.2的版本:
dependencies { // 替换为4.2.0或更高兼容版本 classpath 'com.android.tools.build:gradle:4.2.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" }
- 再打开
android/gradle/wrapper/gradle-wrapper.properties,更新Gradle发行版URL到对应版本(4.2.0插件对应Gradle 6.7.1):
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
3. 清理缓存并重新构建
旧的构建缓存可能残留冲突文件,执行以下命令彻底清理后重新构建:
flutter clean cd android gradlew clean cd .. flutter run
问题根源说明
从错误栈可以看到,异常发生在_calculateSha方法——这是Flutter工具链读取APK文件计算SHA值的步骤。老版本的Flutter master分支没有适配Android Studio 4.2带来的文件系统或Gradle输出变化,导致Dart的IO层出现异常(虽然系统返回"操作成功",但读取逻辑未处理好)。切换到最新稳定版Flutter后,这些兼容性问题已经被官方修复,同时匹配Gradle版本也能确保构建流程正常运行。
内容的提问来源于stack exchange,提问作者peekaysjay
相关产品推荐
相关产品推荐

