vlc-android编译感觉挺麻烦的,记一下。
我的编译配置: ubuntu16.04LTS + android-ndk-r14b +
android-sdk-r24.4.1-linux
1.安装编译vlc需要的工具
sudo apt-get install automake ant autopoint cmake build-essential libtool \ patch pkg-config protobuf-compiler ragel subversion unzip git \ openjdk-8-jre openjdk-8-jdk flex
2.配置ndk与sdk
vim .bashrc // 文件路径/home/hxk/.bashrc
配置ndk与sdk
在最后一行并添加如下代码
#配置ndk
ANDROID_NDK=/home/hxk/software/android-ndk-r14b
export ANDROID_NDK
# 加入到PATH路径
PATH=${PATH}:${ANDROID_NDK}
#配置sdk
export ANDROID_SDK=/home/hxk/software/android-sdk-linux
#VLC编译脚本只认 $ANDROID_SDK 环境变量
export PATH=$PATH:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools
保存文件
更新环境变量:
source /etc/profile
source ~/.bashrc//执行环境变量
检查ndk与sdk是否配置成功
3.close vlc-android代码
git clone https://code.videolan.org/videolan/vlc-android.git
4.在vlc-android目录下close vlc代码
错误1:
这里选择哪个分支close呢?这里之前一直编译报这个错!
解决方案:删除之前的vlc目录,在compile.sh 239行有个git的链接,clone这个vlc在vlc-android目录下
错误2:
如果出现 ../configure:line 9171:syntax error near unexpected token ‘dlopen’ ../configure line 9171:’LT_INIT(dlopen win32-dll shared disable-static)’
这种错误,其实是libtool有问题,我们可以在vlc/vlc-android/vlc目录下执行autoreconf 来解决此问题即可。如果执行autoreconf失败,百度按照对应的操作执行
错误3:报哪个库错误,就百度安装哪个库
5.编译
export ANDROID_ABI=armeabi-v7a//指定版本
//运行脚本
./compile.sh
这里会失败,多重复几次
6.编译成功
看到下图说明编译成功了
查看对应目录就可以看到生成的apk文件了,拷贝安装即可。
7.后面就可以定制vlc和ffmpeg等库重新编译了
这里做个简单的小演示,修改一个string文件:
在vlc-android目录下,重新执行脚本 sh compile.sh编译成功后
可以看到apk的改动了
后面我们可以把应用层放到androidstudio中,只需改动c层编译so放进去替换就可以了。
参考文档:
https://www.jianshu.com/p/529293030334
https://wiki.videolan.org/AndroidCompile/
常见错误:
https://www.jianshu.com/p/ec0614e5c55f