添加TensorFlow Lite双依赖遇重复类错误,求解决方法
解决TensorFlow Lite依赖冲突问题
问题原因
你遇到的重复类错误,核心原因是org.tensorflow:tensorflow-lite-task-vision:0.3.0内部默认依赖了org.tensorflow:tensorflow-lite-api:2.7.0,而你手动添加的org.tensorflow:tensorflow-lite:1.15.0包含了和这个API库完全重复的类(比如org.tensorflow.lite.DataType、Tensor等),两个版本的类文件冲突导致编译失败。
解决方案
方案1:统一TensorFlow Lite版本(推荐)
由于tensorflow-lite-task-vision:0.3.0是基于高版本TensorFlow Lite开发的,直接将所有TensorFlow相关依赖统一为兼容版本,避免版本差异带来的潜在问题:
- 删除旧版本的
tensorflow-lite依赖:implementation 'org.tensorflow:tensorflow-lite:1.15.0' - 将
tensorflow-lite-support的nightly快照版替换为和task-vision匹配的稳定版0.3.0 - 将
tensorflow-lite-gpu版本调整为兼容的2.7.0 - 添加与task-vision兼容的
tensorflow-lite:2.7.0依赖
修改后的dependencies块示例:
dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.1.3' implementation 'com.google.android.gms:play-services-vision-common:19.1.3' implementation 'com.google.android.gms:play-services-vision:20.1.3' implementation 'com.google.android.gms:play-services-location:20.0.0' implementation 'androidx.appcompat:appcompat:1.0.0' androidTestImplementation 'androidx.test.ext:junit:1.1.1' def camerax_version = "1.0.0-beta07" implementation "androidx.camera:camera-camera2:$camerax_version" implementation 'androidx.core:core-ktx:1.3.0' // 统一为与task-vision 0.3.0兼容的版本 implementation 'org.tensorflow:tensorflow-lite:2.7.0' implementation 'org.tensorflow:tensorflow-lite-support:0.3.0' implementation 'org.tensorflow:tensorflow-lite-gpu:2.7.0' implementation 'org.tensorflow:tensorflow-lite-task-vision:0.3.0' androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'com.google.truth:truth:1.0.1' androidTestImplementation 'androidx.test:rules:1.1.0' }
同步项目后,如果Java文件仍有报错,大概率是1.15.0到2.7.0的API有变动,需要调整代码适配新版本的TensorFlow Lite接口(比如部分类的方法签名、初始化逻辑变化)。
方案2:排除task-vision中的重复依赖(不推荐)
如果必须保留tensorflow-lite:1.15.0,可以通过Gradle排除task-vision依赖的tensorflow-lite-api模块,但这种方法可能导致task-vision运行时因API不兼容崩溃:
implementation ('org.tensorflow:tensorflow-lite-task-vision:0.3.0') { exclude group: 'org.tensorflow', module: 'tensorflow-lite-api' }
内容的提问来源于stack exchange,提问作者Rishi Ff
相关产品推荐
相关产品推荐

