Flutter Firestore写入失败:Stream关闭报错求助
解决方案:Firestore写入报错
NoSuchMethodError: getBuffer()Lokio/Buffer 这个错误本质是okio库版本冲突导致的——grpc依赖的okio版本和项目中其他依赖的okio版本不兼容,旧版okio的getBuffer()方法在新版中被移除/修改,引发方法找不到的异常。
以下是具体解决步骤:
先查看项目依赖树,确认冲突的okio版本:
在终端执行命令:flutter pub deps搜索
okio,检查是否存在多个不同版本的依赖。强制统一okio版本:
打开android/build.gradle文件,在allprojects下的subprojects块中添加版本约束:allprojects { repositories { // 保留原有仓库配置 } subprojects { configurations.all { // 强制使用兼容的okio版本,推荐2.x系列(比如2.10.0),适配grpc和Firestore force 'com.squareup.okio:okio:2.10.0' } } }确保Firebase依赖版本统一:
检查pubspec.yaml中所有Firebase相关依赖(比如firebase_core、cloud_firestore)的版本是否一致,避免因版本不匹配引发连锁依赖冲突。清理并重新构建项目:
flutter clean flutter pub get flutter run
补充:如果上述方法无效,可以尝试降级Firestore依赖到之前能正常运行的版本,或者检查是否有其他第三方依赖引入了高版本okio,针对性调整该依赖的版本。
内容的提问来源于stack exchange,提问作者Sara Almashharawi
相关产品推荐
相关产品推荐

