Flutter物体检测应用运行报错:tflite插件与Android嵌入兼容问题
Flutter tflite v1.0.4 插件兼容问题排查
问题根源大概率是tflite v1.0.4插件本身未适配Flutter新的Android嵌入版本
tflite v1.0.4是较早的版本,开发时针对的是Flutter旧版Android嵌入(v1嵌入)。当你按照官方指南将项目迁移到新的v2嵌入后,插件内部调用的旧嵌入API在新环境中已被移除或变更,直接导致运行时触发java.lang.NoSuchMethodError异常,最终出现设备连接丢失的错误。
以下是具体的验证和解决步骤:
验证插件版本兼容性
tflite v1.0.4之后的版本已完成v2嵌入适配,建议直接升级到最新兼容版本(比如v2.x及以上),这是最彻底的解决方式。确认v2嵌入配置是否到位
检查你的Android配置是否完全符合v2嵌入要求:AndroidManifest.xml中,应用的android:name需设置为${applicationName},同时在gradle.properties中配置flutter.applicationName=io.flutter.app.FlutterApplication(或自定义的继承类)MainActivity.java需继承自io.flutter.embedding.android.FlutterActivity,代码示例:
无需手动重写package com.your.package; import io.flutter.embedding.android.FlutterActivity; public class MainActivity extends FlutterActivity { }onCreate等初始化方法,v2嵌入会自动处理。
临时回退方案(若必须使用v1.0.4)
如果暂时无法升级插件,可将项目回退到v1嵌入:- 修改
AndroidManifest.xml的android:name为io.flutter.app.FlutterApplication - 修改
MainActivity.java继承自io.flutter.app.FlutterActivity,保留旧的初始化逻辑 - 在
gradle.properties中添加flutter.androidEmbeddingVersion=1
- 修改
内容的提问来源于stack exchange,提问作者Ahmed Alagha
相关产品推荐
相关产品推荐

