Flutter开发动作识别APP时tflite插件无法使用,求解决方案
解决Flutter tflite插件Android Embedding版本废弃问题
方案1:迁移至官方维护的tflite_flutter插件
原tflite插件已停止维护,官方推出的tflite_flutter原生支持Android V2 Embedding,是最优替代方案:
- 打开
pubspec.yaml,移除旧的tflite依赖,添加新依赖:dependencies: tflite_flutter: ^0.10.1 # 建议使用最新版本 tflite_flutter_helper: ^0.4.0 # 可选,用于简化模型输入输出处理 - 替换代码中的导入语句:将
import 'package:tflite/tflite.dart';改为import 'package:tflite_flutter/tflite_flutter.dart'; - 执行
flutter pub get,并根据新插件的API调整原有代码(核心功能调用逻辑差异不大,可参考官方示例快速适配)
方案2:临时开启V1 Embedding兼容(仅应急)
若暂时无法迁移,可临时启用兼容模式,但不建议长期使用:
- 打开
android/app/src/main/AndroidManifest.xml,在<application>标签内添加以下配置:<meta-data android:name="flutterEmbedding" android:value="1" /> - 注意:Flutter后续版本会彻底移除V1 Embedding支持,此方法仅能解决当前构建问题,后续仍会面临失效风险。
方案3:自行修改tflite插件源码适配V2 Embedding
如果需要保留旧插件的特定功能,可自行修改源码:
- 克隆
tflite插件的源码到本地项目目录 - 修改插件的
android/src/main/AndroidManifest.xml,将flutterEmbedding的值改为2 - 更新Android端代码,适配V2 Embedding的API规范(比如替换
FlutterActivity相关逻辑为FlutterFragment) - 在
pubspec.yaml中引用本地修改后的插件:dependencies: tflite: path: ./local-tflite-plugin # 替换为你的本地插件路径
内容的提问来源于stack exchange,提问作者Tiran Jayasekara
相关产品推荐
相关产品推荐

