花了几天捣鼓ijkplayer编译,终于编译好了,这里记录一下编译的详细过程。
1、编译环境:
- 电脑系统:windows
- 虚拟机:vmware + ubuntu
- ijkplayer版本:k0.8.8
- NDK版本:android-ndk-r10e-darwin-x86_64.bin
这个链接是我编译时参考的文章:
https://www.jianshu.com/p/2c1413486b01
2、步骤
前提:先安装git
sudo apt-get install git
sudo apt-get install yasm
1、下载ijkpalyer源码。
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
2、cd 到ijkplayer的根目录。然后创建分支
git checkout -B latest k0.8.8
3、下载源码,花费时间比较长
./init-android.sh
./init-android-openssl.sh
4、配置模式
cd config
rm module.sh
ln -s module-default.sh module.sh
5、开始编译
cd android/contrib
./compile-openssl.sh clean//清除
./compile-ffmpeg.sh clean//清除
./compile-openssl.sh all//编译
./compile-ffmpeg.sh all//编译
这里会遇到好多奇奇怪怪的问题:
在我进行到第三步时 “./compile-openssl.sh all//编译",出现了如下错误:
build on Linux x86_64
ANDROID_NDK=/usr/android-ndk-r10e
NDKr10e-rc4(64-bit) detected
mkdir: 无法创建目录 “/home/ken/桌面/ijkplayer-android/android/contrib/build”: 权限不够
好,竟然权限不够,那我在前面加上sudo
sudo ./compile-ffmpeg.sh all
结果出现了下面的结果:
build on Linux x86_64
ANDROID_NDK=
You must define ANDROID_NDK before starting.
They must point to your NDK directories.
这个的意思是说我的NDK没有配置好路径(这里提醒一下,最好采用r10e的,不然编译会报错 " You need the NDKr10e or later "),但是我已经在配置文件 /etc/profile 配置路径了,如下
一直网上查找,都说是我的NDK路径没有配置好。
之后我写了如下命令,提高ijkplayer-android夹文件的权限
sudo chmod -R 777 /home/ken/桌面/ijkplayer-android
然后再使用如下编译:
./compile-openssl.sh all//编译
终于可以运行了。
7、生成对应的so
cd ..
./compile-ijk.sh all