返回

Flutter 应用程序意外退出?修复“FileSystemException:writeFrom 失败”错误

IOS

Flutter 应用程序意外退出:修复“FileSystemException:writeFrom 失败”错误

问题

在使用 Flutter 应用程序时,你可能会遇到以下错误消息:

“Oops; flutter has exited unexpectedly: "FileSystemException: writeFrom failed, path = '/.../android/local.properties'" (OS Error: Result too large, errno = 34)”

这个错误通常是由本地属性文件(local.properties)写入失败引起的,这可能是由于文件大小超过限制。

解决方法

解决此错误,你可以尝试以下步骤:

1. 检查本地属性文件的大小

  • 导航到 android/local.properties 文件所在目录。
  • 检查该文件的大小是否超过 100KB。如果是,请继续步骤 2。

2. 将构建工具版本更新到 4.1.0 或更高

  • 打开 build.gradle 文件并找到以下行:
buildToolsVersion '4.0.1'
  • 4.0.1 替换为 4.1.0 或更高版本。

3. 增加本地属性文件的缓冲区大小

  • android/local.properties 文件中添加以下行:
android.enableAapt2IncrementalResPackage=true

4. 重新生成 Gradle 包装器

  • 在终端中运行以下命令:
./gradlew wrapper

5. 清除 Flutter 缓存

  • 在终端中运行以下命令:
flutter clean

6. 重新运行 Flutter 应用程序

  • 尝试再次运行你的 Flutter 应用程序。

其他可能的解决方案

除了上述步骤,你还可以尝试以下方法:

  • 确保拥有对 local.properties 文件的写入权限: 检查文件或文件夹的权限,确保你有权写入它们。
  • 更新 Flutter SDK: 尝试更新 Flutter SDK 到最新版本,因为这可能修复了导致此问题的错误。
  • 重新安装 Flutter SDK: 如果其他方法不起作用,可以尝试重新安装 Flutter SDK。
  • 检查你的防病毒软件: 某些防病毒软件可能会阻止 Flutter 写入文件,导致此错误。尝试禁用或排除 Flutter 目录。

常见问题解答

1. 为什么会出现“writeFrom failed”错误?
这通常是因为本地属性文件的大小超过了限制。

2. 如何增加本地属性文件的缓冲区大小?
android/local.properties 文件中添加以下行:

android.enableAapt2IncrementalResPackage=true

3. 更新构建工具版本有什么好处?
更新构建工具版本可以修复导致此问题的错误。

4. 清除 Flutter 缓存有什么用?
清除 Flutter 缓存可以解决一些问题,包括此错误。

5. 如果尝试了所有这些方法,仍然无法解决问题,该怎么办?
请尝试在 Flutter GitHub 存储库中提交错误报告:https://github.com/flutter/flutter/issues