使用tflite包开发实时目标检测App时构建失败求助
解决Flutter中tflite包构建失败问题
错误原因分析
构建失败的核心原因有两点:
- 旧版
tflite:1.1.2插件的Android模块未指定namespace,而你项目使用的AGP(Android Gradle Plugin)8.1.0要求所有模块必须显式声明namespace。 - 插件内置的AGP版本(3.6.3)与项目使用的AGP 8.1.0版本差异过大,存在兼容性冲突;同时插件依赖的jcenter仓库已停止服务,可能导致依赖下载失败。
解决方案
方案一:修改本地tflite插件配置(临时修复)
找到本地缓存的tflite-1.1.2插件目录(路径为~\tflite-1.1.2\android\),修改build.gradle文件如下:
group 'sq.flutter.tflite' version '1.0-SNAPSHOT' buildscript { repositories { google() mavenCentral() // 替换已废弃的jcenter } dependencies { classpath 'com.android.tools.build:gradle:8.1.0' // 与项目AGP版本保持一致 } } rootProject.allprojects { repositories { google() mavenCentral() // 替换已废弃的jcenter } } apply plugin: 'com.android.library' android { namespace "sq.flutter.tflite" // 新增:指定模块namespace compileSdkVersion 33 // 升级到与项目兼容的版本(匹配flutter.compileSdkVersion) defaultConfig { minSdkVersion 21 // 可与项目minSdk保持一致,或保留19 testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' } lintOptions { disable 'InvalidPackage' } } dependencies { implementation 'org.tensorflow:tensorflow-lite:2.15.0' // 指定具体版本,避免版本漂移 implementation 'org.tensorflow:tensorflow-lite-gpu:2.15.0' }
修改完成后,重新运行flutter run即可构建。
方案二:替换为官方维护的TFLite插件(推荐)
旧版tflite:1.1.2已停止维护,建议替换为TensorFlow官方推出的tflite_flutter插件,它兼容最新的AGP和Flutter版本,支持更多TFLite特性。
- 修改
pubspec.yaml,移除旧插件并添加新插件:
dependencies: cupertino_icons: ^1.0.8 flutter_svg: ^2.0.10+1 image_picker: ^1.1.2 camera: ^0.11.0+2 tflite_flutter: ^0.10.1 # 官方TFLite插件,可使用最新版本 # tflite_flutter_helper: ^0.4.0 # 可选,提供图像预处理工具
- 执行
flutter pub get拉取依赖。 - 适配新插件的API(例如模型加载、推理执行的方法与旧插件略有不同,可参考插件官方文档调整代码)。
内容的提问来源于stack exchange,提问作者llenn
相关产品推荐
相关产品推荐

