已停止维护的flutter_ffmpeg仍可在Flutter项目中使用吗?构建失败问题求助
已停止维护的flutter_ffmpeg仍可在Flutter项目中使用吗?构建失败问题求助
哥们,我之前也踩过flutter_ffmpeg的这个坑!它确实已经停止维护挺久了,但不是完全没法用,先给你捋清楚这个构建失败的原因和解决办法:
首先还原下你的报错场景,方便大家参考:
FAILURE: Build failed with an exception.
- What went wrong: Execution failed for task ':app:checkDebugAarMetadata'.
Could not resolve all files for configuration ':app:debugRuntimeClasspath'. Could not find com.arthenica:mobile-ffmpeg-https:4.4.
这个报错的核心原因是:flutter_ffmpeg依赖的底层库com.arthenica:mobile-ffmpeg-https:4.4原本托管在JCenter仓库,但JCenter已经停止公开服务了,现在Gradle默认找不到这个依赖源,所以才会触发构建失败。
给你两个可行的解决方向:
方案一:迁移到官方维护的替代包(强烈推荐)
原来维护flutter_ffmpeg的作者,已经推出了官方替代的ffmpeg_kit_flutter,这个包一直在更新维护,兼容性和功能都比旧包靠谱。操作步骤很简单:
- 打开项目的
pubspec.yaml,移除原来的flutter_ffmpeg依赖项 - 添加新的依赖,比如用最新稳定版:
dependencies: ffmpeg_kit_flutter: ^5.1.0 # 可以去pub上查最新的稳定版本号
- 执行
flutter pub get拉取依赖 - 代码里的API几乎可以无缝替换,比如把原来的
FlutterFFmpeg类替换成FFmpegKit,调用逻辑基本一致,适配成本极低。
方案二:强行继续使用flutter_ffmpeg(应急用,不推荐长期用)
如果暂时不想换包,也可以通过配置Gradle仓库来拉取旧依赖:
- 打开安卓项目根目录下的
build.gradle(注意是项目级的,不是app模块下的那个) - 在
allprojects的repositories节点里添加JitPack镜像仓库(它保留了一些旧JCenter包的镜像):
allprojects { repositories { google() mavenCentral() // 添加这行,让Gradle能找到旧包 maven { url "https://jitpack.io" } } }
- 执行
flutter clean清理缓存,再重新运行flutter run试试。
⚠️ 提醒一句:方案二只是应急手段,旧包已经没人维护了,后续Flutter版本升级、安卓API更新大概率会出更多兼容性问题,长远来看还是方案一更稳妥。
备注:内容来源于stack exchange,提问作者Saad Mushtaq
相关产品推荐
相关产品推荐

