您的位置:首页 > 移动开发 > Android开发

android ijkplayer编译

2016-10-09 14:44 148 查看
其实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-linux
export ANDROID_NDK=/opt/ndk/android-ndk-r10d
PATH=${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即可运行

友情提示

可能出现的问题大部分都是因为环境变量导致,建议仔细检查环境变量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: