You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Kotlin项目集成FFmpeg编译报错:找不到指定依赖包

问题解决指南

一、编译失败:无法找到com.github.hiteshsondhi88.libffmpeg:FFmpegAndroid:0.3.2

原因

你直接引入的是com.arthenica:mobile-ffmpeg-full:4.4,但报错的库是本地依赖musicg-1.4.2.0.jar间接引入的,而默认的Google、MavenCentral仓库没有这个库,导致依赖解析失败。

解决步骤

  1. 若使用Gradle 7.0以下版本,在项目根目录的build.gradle中添加JitPack仓库:
allprojects {
    repositories {
        google()
        mavenCentral()
        maven { url 'https://jitpack.io' }
    }
}
  1. 若使用Gradle 7.0+版本,仓库配置在settings.gradle中:
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven { url 'https://jitpack.io' }
    }
}
  1. 同步Gradle后重新编译即可。

二、FFmpeg转换命令格式错误

你的命令拼接后会出现参数无空格的问题,FFmpeg无法识别输入输出路径:

// 错误写法:拼接后参数无分隔空格
FFmpeg.execute("-i" + f2 +"/storage/emulated/0/Android/data/com.icompilecodewithnowarnings.ffmpegthing/files/Documents/recording.wav")

修正方案

推荐用数组传递参数(避免路径含空格的兼容问题):

val cmdArray = arrayOf(
    "-i",
    f2,
    "/storage/emulated/0/Android/data/com.icompilecodewithnowarnings.ffmpegthing/files/Documents/recording.wav"
)
FFmpeg.execute(cmdArray)

或用字符串模板保证空格分隔:

val cmd = "-i ${f2} /storage/emulated/0/Android/data/com.icompilecodewithnowarnings.ffmpegthing/files/Documents/recording.wav"
FFmpeg.execute(cmd)

额外注意事项

  • Android 10+需申请存储权限,要么使用Scoped Storage访问文件,要么申请MANAGE_EXTERNAL_STORAGE权限,否则无法读写指定路径的文件。
  • FFmpeg命令需在子线程执行,避免阻塞主线程引发ANR。

内容的提问来源于stack exchange,提问作者axjp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 22:33:30