android ijkplayer编译

来源:互联网 发布:手机面部解锁软件 编辑:程序博客网 时间:2024/05/20 02:27

其实ijkplayer的编译教程有很多,但是不自己实践一边还是不行的,遇到的问题才会自己去解决问题,其实现成的编译好的库文件也有,但是为了时时保持最新的库文件还是自己编译的好,我尝试编译其实主要是解决6.0无法加载库文件的问题,百度了一下发现是ffmpeg跟6.0的不兼容问题,自己下载最新的ndk最新的ffmpeg编译了一遍,发现还是无法解决,最后不得已更改了项目的 targetSdkVersion 为 22,变相解决了

编译环境
Ubuntu VmWare 虚拟机,安装ubantu
ubantu的安装方法
安装完毕之后 需要安装VMware Tools 工具,让虚拟机和主机之间实现交互操作
安装VMware Tools
NDKr10e 本来用10d的发现不能用,提示只能用10e或者更新的版本 64位
Android SDK 24 百度一下找到下载即可 需要linux版本的64位

sudo nautilus以ROOT方式打开文件夹

编译前准备

SDK比较好找,但是发现NDKr10e的很不好找,ndk官网又被墙了,发现可以使用ubantu的命令模式下载,
如果想要下载到指定目录:
为了方便后面的各种操作,需要先获取管理员权限 root权限

在安装其它的必备条件

sudo apt-get update
1.安装Git 命令:$ sudo apt-get install git

2.安装yasm 命令:$ sudo apt-get install yasm

3.配置环境变量
命令:$sudo gedit ~./bashrc
添加以下两个环境变量
export ANDROID_SDK= sdk path
export ANDROID_NDK= ndk path

1、下载和解压NDK
sudo su -
输入管理员密码
会自动切换到 root目录下 我想下载到 opt/ndk目录下
cd /opt/ndk

wget -c http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin

最新的ndk地址
dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip
dl.google.com/android/repository/android-ndk-r11b-linux-x86_64.zip

等待下载完毕即可
解压
chmod a+x android-ndk-r10e-linux-x86_64.bin
./android-ndk-r10e-linux-x86_64.bin
解压 zip:unzip FileName.zip
等待解压完毕
opt/ndk/android-ndk-r10e

2、解压SDK
接着上面的操作
把下载完成的sdk解压到 opt/sdk目录下
cd
cd opt/sdk

tar zxvf android-sdk_r24.4.1-linux.tgz
等待解压完毕
opt/sdk/android-sdk-linux

3、配置sdk和ndk的

gedit /etc/profile 打开profile文件
配置环境变量
或者
在ubuntu环境下,进入home/xxx/
xxx代表你的名字,进入目录后按Ctrl+H就可以看到隐藏的文件,你就可以看到:
.bashrc 文件,这里可以配置类似windows下的path环境变量

export ANDROID_SDK=/opt/sdk/android-sdk-linuxexport ANDROID_NDK=/opt/ndk/android-ndk-r10dPATH=${PATH}:${ANDROID_NDK}:${ANDROID_SDK}

如果下面编译的时候还是提示NDK路径有问题 那么我们可以直接在终端中
export ANDROID_NDK=/opt/ndk/android-ndk-r12b
这样当然只在此次终端开启时有效

开始编译
1.下载项目到本地
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
git checkout -B latest k0.6.2

2.执行初始化操作
dpkg-reconfigure dash //在弹出提示框选择“否”
./init-android.sh

3.编译ffmpeg
cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all 编译ffmpeg这个等待的时间比较长,耐心等待

4.开始编译so
cd ..
./compile-ijk.sh all

完成
如果正确编译的话,会分别在ijkplayer-arm64、ijkplayer-armv5、ijkplayer-armv7a、ijkplayer-x86、ijkplayer-x86_64这些项目的src/main/libs/对应的名称 目录下分别生成libijkffmpeg.so、libijkplayer.so、libijksdl.so这三个so文件

编译成功后将目录下android/ijkplayer项目导入Android Studio即可运行

友情提示
可能出现的问题大部分都是因为环境变量导致,建议仔细检查环境变量

1 0
原创粉丝点击