Flutter集成CameraX遇ListenableFuture访问错误求助
解决CameraX集成中ListenableFuture无法访问的问题
这个错误是因为项目缺少com.google.common.util.concurrent.ListenableFuture类对应的依赖,或者存在依赖版本冲突,以下是具体修复步骤:
1. 确保CameraX依赖配置正确
打开Flutter项目中android/app/build.gradle文件,在dependencies块中添加CameraX的完整依赖(建议使用bundle依赖,它会自动包含所需的Guava等依赖):
dependencies { // CameraX核心库 implementation "androidx.camera:camera-camera2:1.3.0" // CameraX预览库 implementation "androidx.camera:camera-preview:1.3.0" // CameraX核心基础库 implementation "androidx.camera:camera-core:1.3.0" // CameraX ML Kit条码扫描集成 implementation "androidx.camera:camera-mlkit-barcode-scanning:1.3.0" // 显式添加Guava依赖(若bundle依赖未自动引入) implementation "com.google.guava:guava:32.1.3-android" }
2. 解决依赖冲突
如果项目中其他依赖引入了不同版本的Guava,需要统一版本。在android/build.gradle的allprojects块中添加版本强制规则:
allprojects { repositories { google() mavenCentral() } configurations.all { resolutionStrategy { force 'com.google.guava:guava:32.1.3-android' } } }
3. 清理并重建项目
执行以下操作确保依赖生效:
- 运行
flutter clean清理项目缓存 - 运行
flutter pub get获取依赖 - 在Android Studio中点击
File > Invalidate Caches... > Invalidate and Restart重启IDE
额外检查
确认你的compileSdkVersion和targetSdkVersion至少为33(CameraX 1.3.0的最低要求),在android/app/build.gradle中设置:
android { compileSdkVersion 33 defaultConfig { targetSdkVersion 33 } }
你的原生代码本身无问题,核心问题在于Android端的依赖配置缺失或冲突,按照上述步骤调整后即可解决ListenableFuture无法访问的错误。
内容的提问来源于stack exchange,提问作者BraveEvidence
相关产品推荐
相关产品推荐

