Flutter如何解决Provider未找到及Invalid Qualifier报错问题
Flutter Skia着色器编译报错解决方案
错误根因
该报错为Flutter 3.10+版本默认启用的Impeller渲染引擎兼容问题:在不支持GL_EXT_shader_framebuffer_fetch OpenGL扩展的安卓设备/模拟器上,Skia生成的着色器代码错误将inout修饰符用于全局变量,触发编译失败。
可行解决方案
- 临时验证:执行
flutter run --no-enable-impeller命令启动应用,禁用Impeller渲染引擎,验证报错是否消失。 - 安卓端永久禁用Impeller:打开项目下
android/app/src/main/AndroidManifest.xml文件,在<application>标签内添加如下配置:
<meta-data android:name="io.flutter.embedding.android.EnableImpeller" android:value="false" />
- 版本升级修复:将Flutter SDK升级到3.16及以上稳定版,该版本已修复多数低版本安卓设备的着色器兼容问题,无需关闭Impeller即可正常运行。
- 模拟器专属修复:若使用安卓模拟器运行,可将模拟器系统镜像升级到Android 13及以上版本,高版本镜像已默认支持所需的OpenGL扩展。
内容的提问来源于stack exchange,提问作者Ghulam Ahmad
相关产品推荐
相关产品推荐

