在Win10 Qt5.12.3环境下如何使用TensorFlow Lite Java API?
在Qt 5中集成TensorFlow Lite Java API的解决方案
先明确你的环境信息:
- 操作系统:Win10 64位
- Qt:5.12.3
- NDK:r18b
- JDK:jdk1.8.0_201
你遇到的核心问题是Qt for Android的Gradle构建逻辑和Android Studio存在差异,直接照搬AS里的依赖代码到Qt的build.gradle会因为Qt自动生成配置的覆盖冲突报错。下面分步骤帮你解决:
一、正确添加TensorFlow Lite依赖(避免手动修改自动生成的build.gradle)
Qt for Android项目不建议直接修改自动生成的build.gradle——因为每次构建Qt都会重新生成这个文件,你的手动修改会被覆盖。推荐两种可靠的配置方式:
方式1:用Qt Creator图形界面添加依赖(最省心)
- 打开Qt Creator,切换到项目的Build & Run选项卡,选中Android平台
- 找到Build Android APK下的Gradle板块,点击Add Dependency按钮
- 依次输入以下三个依赖条目并确认:
org.tensorflow:tensorflow-lite:0.0.0-nightlyorg.tensorflow:tensorflow-lite-gpu:0.0.0-nightlyorg.tensorflow:tensorflow-lite-support:0.0.0-nightly
- 应用设置后,Qt会自动把这些依赖注入到它生成的Gradle配置里,不会出现冲突
方式2:自定义Gradle模板(适合有特殊配置需求的情况)
如果图形界面添加无效,可以自己编写Gradle模板:
- 在你的Qt项目根目录下新建
android文件夹,里面创建build.gradle文件 - 写入以下内容(保留Qt默认依赖,再追加TensorFlow相关依赖):
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) // TensorFlow Lite相关依赖 implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly' implementation 'org.tensorflow:tensorflow-lite-gpu:0.0.0-nightly' implementation 'org.tensorflow:tensorflow-lite-support:0.0.0-nightly' implementation project(':qtAndroidAppCompat') } - 回到Qt Creator的Build & Run -> Android -> Gradle,勾选Use custom gradle build files,然后指定你刚才创建的
build.gradle路径
二、解决Java类导入问题
依赖配置好后,你需要在Qt项目的Java代码中正确导入类。Qt的Java代码要放在android/src目录下对应包结构的文件里(比如src/com/yourcompany/yourapp/MainActivity.java),示例导入代码:
import org.tensorflow.lite.Interpreter; import org.tensorflow.lite.gpu.GpuDelegate; import org.tensorflow.lite.support.image.TensorImage;
如果还是提示找不到类,先检查依赖是否拉取成功:可以去项目构建目录的android-build/libs下看看有没有tensorflow-lite*.aar文件,有的话说明依赖没问题,可能是IDE缓存,重启Qt Creator试试。
三、常见问题排查
- NDK版本兼容性:你的NDK是r18b,属于较旧版本,TensorFlow Lite的nightly版本可能对NDK有更高要求。Qt 5.12.3官方支持的NDK版本是r10e到r20,你可以尝试升级到r20(不要超过r20,避免Qt不兼容),看看能不能解决依赖拉取的错误。
- JDK路径配置:确保Qt Creator的Tools -> Options -> Devices -> Android里的JDK路径指向jdk1.8.0_201,路径不能包含空格或特殊字符。
- 清理构建缓存:旧缓存可能导致异常,点击Qt Creator的Build -> Clean All,然后删除项目根目录下的
build文件夹,再重新构建。
内容的提问来源于stack exchange,提问作者StereoMatching
相关产品推荐
相关产品推荐

