zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

【错误记录】编译 Android 版本的 ijkplayer 报错 ( ./init-android.sh: 第 37 行: cd: android/contrib/: 没有那个文件或目录 )

Android错误文件 报错 版本 记录 目录 编译
2023-06-13 09:18:01 时间

文章目录

一、报错信息


编译 Android 版本的 ijkplayer 时 , 执行 init-android.sh 脚本 , 报如下错误 ;

root@octopus:~/ijkplayer/ijkplayer-android# ./init-android.sh
git version 2.17.1
== pull ffmpeg base ==
正克隆到 'extra/ffmpeg'...
remote: Enumerating objects: 539054, done.
remote: Total 539054 (delta 0), reused 0 (delta 0), pack-reused 539054
接收对象中: 100% (539054/539054), 203.52 MiB | 101.00 KiB/s, 完成.
处理 delta 中: 100% (418341/418341), 完成.
== pull ffmpeg fork armv5 ==
正克隆到 'android/contrib/ffmpeg-armv5'...
检查连接中: 539054, 完成.
对象计数中: 539054, 完成.
Delta compression using up to 4 threads.
压缩对象中: 100% (119455/119455), 完成.
写入对象中: 100% (539054/539054), 完成.
Total 539054 (delta 418341), reused 539054 (delta 418341)
切换到一个新分支 'ijkplayer'
/root/ijkplayer/ijkplayer-android
== pull ffmpeg fork armv7a ==
正克隆到 'android/contrib/ffmpeg-armv7a'...
检查连接中: 539054, 完成.
对象计数中: 539054, 完成.
Delta compression using up to 4 threads.
压缩对象中: 100% (119455/119455), 完成.
写入对象中: 100% (539054/539054), 完成.
Total 539054 (delta 418341), reused 539054 (delta 418341)
切换到一个新分支 'ijkplayer'
/root/ijkplayer/ijkplayer-android
== pull ffmpeg fork arm64 ==
正克隆到 'android/contrib/ffmpeg-arm64'...
检查连接中: 539054, 完成.
对象计数中: 539054, 完成.
Delta compression using up to 4 threads.
压缩对象中: 100% (119455/119455), 完成.
写入对象中: 100% (539054/539054), 完成.
Total 539054 (delta 418341), reused 539054 (delta 418341)
切换到一个新分支 'ijkplayer'
/root/ijkplayer/ijkplayer-android
== pull ffmpeg fork x86 ==
正克隆到 'android/contrib/ffmpeg-x86'...
fatal: unable to access 'https://github.com/Bilibili/FFmpeg.git/': gnutls_handshake() failed: The TLS connection was non-properly terminated.
tools/pull-repo-ref.sh: 11: cd: can't cd to android/contrib/ffmpeg-x86
对象计数中: 25071, 完成.
Delta compression using up to 4 threads.
压缩对象中: 100% (6484/6484), 完成.
写入对象中: 100% (25071/25071), 完成.
Total 25071 (delta 15968), reused 25071 (delta 15968)
./init-android.sh: 第 37 行: cd: android/contrib/ffmpeg-x86: 没有那个文件或目录
root@octopus:~/ijkplayer/ijkplayer-android# 

二、解决方案


分析 init-android.sh 脚本内容 :

function pull_fork()
{
    echo "== pull ffmpeg fork $1 =="
    sh $TOOLS/pull-repo-ref.sh $IJK_FFMPEG_FORK android/contrib/ffmpeg-$1 ${IJK_FFMPEG_LOCAL_REPO}
    cd android/contrib/ffmpeg-$1
    git checkout ${IJK_FFMPEG_COMMIT} -B ijkplayer
    cd -
}

pull_fork "armv5"
pull_fork "armv7a"
pull_fork "arm64"
pull_fork "x86"
pull_fork "x86_64"

上述 shell 脚本中的 pull_fork 方法 , 接收的参数主要是用于创建目录 , 指定目录名称 ;

前面的几个版本的 ffmpeg , 如 : " armv5 " , “armv7a” , “arm64” , “x86” , 下载检出代码都很成功 ,

但是最后的 “x86_64” 版本 , 出现

fatal: unable to access 'https://github.com/Bilibili/FFmpeg.git/': 
gnutls_handshake() failed: The TLS connection was non-properly terminated.

问题 , 下载代码失败 , 导致很后面的内容报错 ;

重复执行上述 ./init-android.sh 脚本 , 直到

5

个代码全部克隆完毕 ;