Flutter编译报错:无法写入ink_sparkle.frag.spirv求解决方案
以下是针对该问题的可行排查与解决步骤:
手动创建目标目录并配置权限
定位报错中的目标路径:F:\Company\SarmadEngineeringSolutions\Projects\ResturantSoftware\RestaurantStandardSoftware\foodie-multiple-restaurant-delivery-flutter\Foodie_V5.2.1_Source_Code\foodie-5.2\Foodie_Customer\build\app\intermediates\flutter\debug\flutter_assets\shaders- 若目录不存在,手动逐层创建;
- 若目录已存在,右键打开「属性」→「安全」→「编辑」,添加当前登录用户并勾选「完全控制」权限,应用后重新编译项目。
清理缓存与构建文件
执行以下命令清理Flutter缓存和项目依赖:flutter clean flutter pub get同时删除项目根目录下的
.gradle文件夹,重启Android Studio后重新尝试编译。缩短项目路径
当前项目路径过长,Windows默认路径长度限制为260字符,过长路径会导致文件写入失败。将项目移动到更简短的目录下,例如F:\Projects\Foodie_Customer,再重新编译。排查杀毒软件拦截
部分杀毒软件会误判Flutter的着色器编译进程(impellerc),暂时关闭杀毒软件,或把Flutter安装目录、项目目录添加到杀毒软件的信任列表中。调整Flutter版本
该问题可能与特定版本的Flutter引擎相关,尝试降级到稳定版3.13.x或升级到最新稳定版:# 降级到指定版本 flutter downgrade 3.13.9 # 或升级到最新版 flutter upgrade
问题背景
运行Flutter应用时出现无法写入ink_sparkle.frag.spirv文件的错误,怀疑是权限问题。已尝试以下操作但无效:
- 以管理员模式打开Android Studio
- 关闭Windows 10的受控文件夹访问
- 尝试过相关的Stack Overflow和GitHub解决方案
环境信息
Flutter 3.16.3 • channel stable • https://github.com/flutter/flutter.git Framework • revision b0366e0a3f (7 days ago) • 2023-12-05 19:46:39 -0800 Engine • revision 54a7145303 Tools • Dart 3.2.3 • DevTools 2.28.4
完整报错信息
Could not write file to F:\Company\SarmadEngineeringSolutions\Projects\ResturantSoftware\RestaurantStandardSoftware\foodie-multiple-restaurant-delivery-flutter\Foodie_V5.2.1_Source_Code\foodie-5.2\Foodie_Customer\build\app\intermediates\flutter\debug\flutter_assets\shaders/ink_sparkle.frag.spirv Target debug_android_application failed: ShaderCompilerException: Shader compilation of "E:\dev\flutter\packages\flutter\lib\src\material\shaders\ink_sparkle.frag" to "F:\Company\SarmadEngineeringSolutions\Projects\ResturantSoftware\RestaurantStandardSoftware\foodie-multiple-restaurant-delivery-flutter\Foodie_V5.2.1_Source_Code\foodie-5.2\Foodie_Customer\build\app\intermediates\flutter\debug\flutter_assets\shaders/ink_sparkle.frag" failed with exit code 1. impellerc stdout: impellerc stderr: Could not write file to F:\Company\SarmadEngineeringSolutions\Projects\ResturantSoftware\RestaurantStandardSoftware\foodie-multiple-restaurant-delivery-flutter\Foodie_V5.2.1_Source_Code\foodie-5.2\Foodie_Customer\build\app\intermediates\flutter\debug\flutter_assets\shaders/ink_sparkle.frag.spirv FAILURE: Build failed with an exception. * Where: Script 'E:\dev\flutter\packages\flutter_tools\gradle\src\main\groovy\flutter.groovy' line: 1350 * What went wrong: Execution failed for task ':app:compileFlutterBuildDebug'. > Process 'command 'E:\dev\flutter\bin\flutter.bat'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 19s Exception: Gradle task assembleDebug failed with exit code 1
内容的提问来源于stack exchange,提问作者Muhammad Sarmad Mahmood Malik

