官方的参考路径 AndroidCompile - VideoLAN Wiki
- 编译环境 ubuntu 20.04
sudo apt-get install automake ant autopoint cmake build-essential libtool-bin \
patch pkg-config protobuf-compiler ragel subversion unzip git \
openjdk-8-jre openjdk-8-jdk flex python wget
2. 先下载sdk 以及 ndk linux版本的
sdkmanager | Android Studio | Android Developersy 命令行可以安装下 sdkManager,用命令行下载 或者 也可以安装 Android studio 进行下载 developer.android.com/studio/intr…
然后配置环境变量,可以配置到bash source文件里面去 ANDROID_SDK 和 ANDROID_NDK
export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools
3. 下载源码编译
git clone https://code.videolan.org/videolan/vlc-android.git
结构如图
可以编译以后gradle build后 生成apk ,或者 只编译libvlc aar 也可以
5.问题处理
fseterr 报错
lib/fseterr.c: In function 'fseterr':
lib/fseterr.c:77:3: error: #error "Please port gnulib fseterr.c to your platform! Look at the definitions of ferror and clearerr on your system, then report this to bug-gnulib."
77 | #error "Please port gnulib fseterr.c to your platform! Look at the definitions of ferror and clearerr on your system, then report this to bug-gnulib."
| ^~~~~
make[3]: *** [Makefile:3461: lib/fseterr.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/home/guangsen/ffmpeng/vlc-compile/vlc-android/libvlcjni/vlc/extras/tools/bison'
make[2]: *** [Makefile:4522: all-recursive] Error 1
make[2]: Leaving directory '/home/guangsen/ffmpeng/vlc-compile/vlc-android/libvlcjni/vlc/extras/tools/bison'
make[1]: *** [Makefile:2625:all] 错误 2
make[1]: 离开目录“/home/guangsen/ffmpeng/vlc-compile/vlc-android/libvlcjni/vlc/extras/tools/bison”
make: *** [/home/guangsen/ffmpeng/vlc-compile/vlc-android/libvlcjni/vlc/extras/tools/tools.mak:358:.buildbison] 错误 2
make: 离开目录“/home/guangsen/ffmpeng/vlc-compile/vlc-android/libvlcjni/vlc/extras/tools”
* Where:
Build file '/home/guangsen/ffmpeng/vlc-compile/vlc-android/medialibrary/build.gradle' line: 10
手动安装一次 bison : sudo apt-get install bison
meson报错: meson.build:1:0: ERROR: Meson version is 0.55.1 but project requires >=0.56
sudo apt-get install automake ant autopoint build-essential libtool-bin \
patch pkg-config protobuf-compiler ragel subversion unzip git \
flex python wget vim
把版本好改一下 meson-0.56.0.tar.gz 在目錄vlc/extras/tools/SHA12SUMS
可以直接下載好 拖進來
sha512sum meson-0.56.0.tar.gz 查看sha512 對應改一下
gradle重复下载问题
buildsystem/compile.sh 会重复下载gradle ,可以把下载的地方屏蔽掉,避免编译又进行
build libvlcjni 的时候 会再次触发下载 gradle
直接用android studio 打开工程 触发相关以来下载 ,同步成功后 ,再次执行,更方便--
环境没啥问题后续编译就正常了
buildsystem/compile.sh --help 查看编译的 平台
ARM: (armeabi-v7a|arm)
ARM64: (arm64-v8a|arm64)
buildsystem/compile.sh -a <ABI>
vlc-android/build/outputs/apk 产生对应的 测试 apk
buildsystem/compile.sh release
release APK in the same folder
buildsystem/compile.sh -l -a <ABI> -r
Build LibVLC 得到一个 aar 纯播放相关 -r 表示release版本的意思
buildsystem/compile.sh -ml -a <ABI> -r
Build Medialibrary 得到一个 包含libvlc的带一些 应用层播控逻辑的 aar -r 表示release版本的意思