Flutter构建失败:无法找到ffmpeg-android-java-2a627f6ecd.aar依赖
解决方案
第一步:定位间接引入问题依赖的第三方库
先搞清楚是哪个Flutter包间接拉了这个出问题的ffmpeg依赖,在项目根目录执行:
flutter pub deps --tree
搜索输出里的com.github.adrielcafe:ffmpeg-android-java:2a627f6ecd,往上追溯就能找到对应的Flutter包。
第二步:针对性解决依赖问题
方案A:升级依赖的Flutter包
找到那个间接引入问题依赖的Flutter包后,去它的pub.dev页面或GitHub仓库查看是否有更新版本——这类问题大多是因为该包使用了某个Git commit哈希作为依赖版本,而jitpack上该commit的构建现在失败了。升级到该Flutter包的最新稳定版,作者通常会修复这类依赖失效问题。
方案B:强制替换问题依赖
如果暂时没法升级目标Flutter包,或者升级后问题仍存在,可以在Android端强制替换这个ffmpeg依赖:
- 打开项目的
android/build.gradle,在dependencyResolutionManagement的resolutionStrategy中添加规则:
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven { url 'https://jitpack.io' } } resolutionStrategy { // 替换为该库的可用稳定版本,比如0.3.2(以实际可用版本为准) force 'com.github.adrielcafe:ffmpeg-android-java:0.3.2' } }
- 或者在
android/app/build.gradle中先排除原依赖,再手动引入可用版本:
dependencies { // 排除所有间接引入的问题版本 configurations.all { exclude group: 'com.github.adrielcafe', module: 'ffmpeg-android-java' } // 引入稳定版本 implementation 'com.github.adrielcafe:ffmpeg-android-java:0.3.2' }
方案C:本地构建AAR包
如果jitpack上所有版本都无法正常获取,可以自行拉取ffmpeg-android-java的GitHub仓库,本地构建出aar文件,放到项目的android/app/libs目录,然后在android/app/build.gradle中添加本地依赖:
dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) }
第三步:清理缓存重试
无论采用哪种方案,执行以下命令清理缓存后再重新构建:
flutter clean cd android && ./gradlew clean cd .. && flutter run
内容的提问来源于stack exchange,提问作者MichaelLee
相关产品推荐
相关产品推荐

