环境介绍
在开始之前先介绍我编译所需要的一些环境版本
- Ubuntu 18.04.1
- Android SDK:
- Android NDK:Android ndk-r18b
- Android studio:Android-studio-ide-181.5014246-Linux
- jdk:1.8.0_191
- ......
VLC 介绍
VLC 是一个免费开源的跨平台多媒体播放器和框架, 可以播放众多的多媒体文件, DVD,CD,VCD 和各种流协议. VLC 使用 C 语言开发, 可跨平台编译为其他系统所用; VLC-Android 是将 VLC 编译为 Android 可调用类库 (*.so) 的工程. 官网建议在 Linux 下进行编译, 由于依赖的工具包很多, 并且 VLC 编译脚本对工具包版本, 代码版本都有严格的 hash 校验, 再加上官方说明并不是很照顾新手, 所以出现了很多配置问题.
VLC 官网: http://www.videolan.org/
VLC 源码: http://www.videolan.org/vlc/download-sources.html
VLC 依赖: ftp://ftp.videolan.org/pub/contrib/ 或 http://download.videolan.org/pub/contrib/
VLC 框架介绍:
VLC-Android 编译官方文档: https://wiki.videolan.org/AndroidCompile/
开始编译
1. 安装 Java JDK
在 Ubuntu 可以直接使用 apt-get 安装 openjdk, 环境变量已配好, 也可以自己配置 oracle 官方版本
可以参考 Ubuntu 安装 jdk
但是最后在执行编译 vlc-Android 时候 提示少了 tools.jar, 可以直接 copy 一个到对应目录即可解决
2. 安装工具包
我们需要安装编译所依赖的环境
sudo apt-get install automake ant autopoint cmake build-essential libtool patch pkg-config protobuf-compiler ragel subversion unzip Git
3. 安装 Android SDK
在这里遇到了一个坑, 导致后来编译一直过不去, 实在没办法就安装了 Android studio , 用自带的 SDK 就可以了.
一开始安装的是官方所给出的 SDK 但是编译提示没有 target
错误提示
后来就下载了 Android studio 然后更新了 Android sdk 并且配置了 SDK 的环境变量就不会有上面的错误提示了
4. 安装 Android NDK
下载 Android-ndk-r18b, 这个文件找了好久 , 这里给出下载地址
- export ANDROID_SDK=/home/Ubuntu/Android/Sdk
- export ANDROID_NDK=/home/Ubuntu/Documents/tools/Android-ndk-r18b
- export PATH=$PATH:$ANDROID_SDK:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools
- export PATH=$PATH:$ANDROID_NDK
5. 开始编译
下载 vlc-Android 代码
Git clone https://code.videolan.org/videolan/vlc-android.git
然后 cd vlc-Android 执行 sh compile.sh 就开始编译, 默认编译的是 armeabi-v7a
编译过程遇到了几个问题
问题 1. 就是下载到 vlc-Android/vlc/contrib/tarballs 所依赖的 tar.gz 总是不成功 有些可能是网络问题导致 就需要重复执行编译
依赖的包
问题 2. 提示找不到 target
安装了 Android studio 来更新下载 SDK 解决
问题 3. 编译时候找不到 jdk 中的 tools.jar
复制了一个已经有的 jar 就 ok 了
最后 完美编译并运行
编译成功
运行如图所示
运行结果
一点感想
编译大概花了 2 天时间, 也是查了一些其他文章, 这个过程还是值得去尝试一下, 因为编译过程会遇到各种奇怪问题, 然后试着针对问题去解决, 最终就会成功.
来源: http://www.jianshu.com/p/7505e066e362