编译步骤:
1、 搭建 linux 环境和编译工具准备
编译环境 Ubuntu 18.04,不是虚拟机环境
sudo apt-get update
sudo apt-get install git
sudo apt-get install make
sudo apt-get install yasm
2、 搭建 JDK(linux) + Android SDK(linux + NDK(linux)
JDK :
sudo apt-get install openjdk-8-jdk
//配置环境变量:
sudo gedit /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Android SDK(linux):
1)手动下载 sdk-tools-linux-4333796.zip
2)进入目录 /androidSDK/sdk-tools-linux/tools/bin ,
执行 ./sdkmanager --list 命令看下有哪些目录可以下载:
接着拉必要的目录,执行以下命令
./sdkmanager “add-ons;addon-google_apis-google-24” “add-ons;addon-google_apis-google-24” “platform-tools” “platforms;android-28” “tools”
3)配置环境变量
sudo gedit /etc/profile
export ANDROID_SDK=/home/xxx/androidSDK/android-sdk-linux
export PATH=${PATH}:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools
下载 android-ndk-r11-linux-x86_64.zip
sudo gedit /etc/profile
export ANDROID_NDK=/home/xxx/androidNDK/android-ndk-r11
export PATH=$ANDROID_NDK:$PATH
3、下载ijkplayer
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
4、拉取 ijkpalyer JNI 和 ffmpeg 代码
cd ijkplayer-android
./init-android.sh
5、拉取 openssl 代码
./init-android-openssl.sh
6、编译openssl代码
cd android/contrib
./compile-openssl.sh clean
./compile-openssl.sh all
7、选择配置ffmpeg信息
cd ../../
cd config
rm module.sh
ln -s module-lite.sh module.sh
//如果需要支持更多的视频格式用下面的配置
// ln -s module-default.sh module.sh
8、编译 ffmpeg 代码
cd ../
cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
9、编译 ijkplayer jni 代码(依赖ffmpeg库)
cd ..
./compile-ijk.sh all
遇到问题:
1、 You need the NDKr10e or later
build on Linux x86_64
ANDROID_NDK=/home/xxx/Android/android-ndk-r14b
IJK_NDK_REL=16.1.4479499
You need the NDKr10e or later
解决办法
最初是android-ndk-r14b
换成更低的版本
下载版本号11的android-ndk-r11-linux-x86_64.zip
重新设置ANDROID_NDK为新下载的NDK路径
致谢:
Android JNI 篇 - 编译 bilibili/ijkPlayer
ubuntu编译最新版ijkplayer