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

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误记录编译 Android 版本的 ijkplayer 报错 ( ./init-android.sh: 第 37 行: cd: android/contrib/: 没有那个文件或目录 )相关的知识,希望对你有一定的参考价值。

文章目录





一、报错信息



编译 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 5 5 个代码全部克隆完毕 ;

以上是关于错误记录编译 Android 版本的 ijkplayer 报错 ( ./init-android.sh: 第 37 行: cd: android/contrib/: 没有那个文件或目录 )的主要内容,如果未能解决你的问题,请参考以下文章

错误记录AS 编译报错 ( Android Support plugin 版本太高 | 升级 Android Studio 到最新版本 )

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

错误记录Android Studio 4.2.1 编译报错 ( Kotlin 版本推荐设置 1.5.0 )

错误记录Android Studio 编译报错 ( Could not determine java version from ‘11.0.8‘. ② | 升级 Gradle 版本 )

错误记录Android Studio 4.2.1 编译报错 ( 设置支持的 Java 和 Kotlin 版本 )

错误记录Kotlin 编译报错 ( Type mismatch: inferred type is String? but String was expected )