Flutter引入Image.network报Skia着色器编译错误,Genymotion调试失败
报错原因
你遇到的D/skia ( 1776): Shader compilation error报错属于Skia图形渲染引擎的着色器编译失败问题,在Genymotion模拟器上运行Flutter项目加载网络图片时触发,核心原因是Genymotion默认的虚拟GPU驱动和Flutter使用的渲染引擎(Skia/Impeller)存在兼容冲突,和图片尺寸、代码逻辑本身没有直接关联。
解决方案
按优先级依次尝试以下操作即可解决:
- 先终止当前运行的Flutter进程,在项目根目录终端依次执行
flutter clean、flutter pub get清理缓存并重新拉取依赖,避免旧的编译缓存干扰 - 打开Genymotion对应模拟器的设置页面,找到「高级」选项,取消勾选启用硬件OpenGL渲染,保存设置后重启模拟器再运行项目
- 如果不想修改模拟器配置,可直接运行命令
flutter run --enable-software-rendering --no-enable-impeller启动项目,关闭兼容性较差的Impeller渲染器后,软渲染模式可规避GPU驱动兼容问题 - 若上述操作都无效,可先将网络图片替换为本地资源图片验证,确认是渲染问题后,将安卓子项目的
minSdkVersion调整至21及以上,即可适配更高版本的渲染特性
代码优化(不影响报错,仅做规范修正)
你提供的代码仅存在两处小的不规范问题,和本次报错无关,可按需调整:
import 'package:flutter/material.dart'; void main() => runApp(const MyApp()); class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( title: 'Material App', home: Scaffold( appBar: AppBar( // 修正原拼写错误:多了一个p title: const Text('Material App'), ), body: Center( child: Container( child: Image.network( "https://noticiasambientales.com/wp-content/uploads/2020/09/colibri-rdn.jpg", width: 200, height: 200, // fit: BoxFit.cover, // 默认值,用于控制图片宽高超出容器时的展示方式 ), ), ), ), ); } }
内容的提问来源于stack exchange,提问作者Joel Peralta
相关产品推荐
相关产品推荐

