vlc-android编译感觉挺麻烦的,记一下。
我的编译配置: ubuntu16.04LTS + android-ndk-r14b +
android-sdk-r24.4.1-linux
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
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