Flutter生成protocol buffers时出现Kernel binary加载错误如何解决?
Flutter 生成 Protocol Buffers 报错
Can't load Kernel binary: Invalid kernel binary format version 解决方案 问题原因
该报错本质是 Dart SDK 版本与 Protocol Buffers Dart 代码生成插件 protoc_plugin 的编译版本不匹配,多数由 Flutter 内置 Dart 环境与全局单独安装的 Dart 环境冲突导致。
解决步骤
- 统一使用 Flutter 内置 Dart 环境安装
protoc_plugin,避免版本冲突
不要单独用系统级pub命令安装插件,改用 Flutter 自带的pub命令:flutter pub global activate protoc_plugin - 清理旧缓存消除版本残留
执行命令清理项目缓存和全局 pub 缓存:
Windows 用户可手动删除用户目录下的flutter clean rm -rf ~/.pub-cache.pub-cache文件夹。 - 调整 proto 生成命令,指定匹配版本的插件路径
生成代码时主动调用 Flutter 全局安装的protoc_plugin,避免调用到其他版本的插件:
请自行替换命令里的 proto 源文件路径和生成代码的输出路径。protoc --dart_out=./lib/proto ./proto/*.proto --plugin=$(flutter pub global path protoc_plugin) - 旧版本 Flutter 适配
如果你使用的 Flutter 版本较旧,不兼容最新版protoc_plugin,可以指定安装对应兼容版本:
可根据你的 Flutter 发布时间,选择同期发布的flutter pub global activate protoc_plugin 20.0.1protoc_plugin版本即可。 - 最终修复方案
若以上操作都无效,升级 Flutter 到最新稳定版后重新安装插件即可:flutter upgrade flutter pub global activate protoc_plugin
内容的提问来源于stack exchange,提问作者Khamidjon Khamidov
相关产品推荐
相关产品推荐

