使用fvm切换不同的flutter版本,以及调整protobuf依赖的版本后,运行仍有可能出错,特别是当flutter版本在空安全和非空安全之间切换时。 本文记录切换flutter空安全和非空安全后,protobuf生成的文件问题。

问题场景

多项目不同flutter版本间切换或者flutter项目升级后,导致生成的dart代码无法在当前项目中使用,需要升级或降级protoc plugin版本,重新生成dart代码。

切换 protoc plugin 到 空安全版本(最新版本)

1
dart pub global activate protoc_plugin

切换 protoc plugin 到 非空安全版本

1
dart pub global activate protoc_plugin 19.3.1

重新生成dart代码

1
protoc --dart_out=../lib/proto ./**/*.proto

如果环境配置正确,执行上面的命令可以正确生成。..lib/proto 为输出目录,./**/*.proto 为.proto文件的位置,都需要修改为你的目录。