VLC在ubuntu环境下编译

由于在使用vlc的过程中发现了关闭资源需要30s的bug,所以准备自己编译一个vlc的最新版本的库来。

环境准备官网wiki

  • ubuntu16+ 第一步:需要安装好ubuntu,作者是在mac上安装的ubuntu的虚拟机来进行编译的
  • 编译环境

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

如果是64位的机子还需要按照

sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install zlib1g:i386 libstdc++6:i386 libc6:i386

  • sdk 1.下载 android-sutdio 2.如果你不想要as你可以只下载android-sdk

  • ndk android-ndk-r14b-linux-x86_64.zip 一定要下载r14b的版本哦

如果出现make_standalone_toolchain.py failed这样的问题,就是ndk的问题,你需要检查你使用的ndk是否有问题

  • 设置路径

export ANDROID_SDK=/path/to/android-sdk export ANDROID_NDK=/path/to/android-ndk export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools

开始编译

  • 获取源代码

git clone https://code.videolan.org/videolan/vlc-android.git

  • 执行编译

sh compile.sh -a arm

###常见问题

  • make_standalone_toolchain.py failed 这是我遇到过的第一个问题,经过查看compile.sh文件之后发现需要执行这个文件然后会在pwd(当前工作目录下)生成文件,但是并没有,后来发现是ndk的版本或者文件缺失问题。
  • Unrecognized syntax identifier "proto3". This parser only recognizes "proto2" 这个问题是proto的版本不对 下载

将bin里的文件复制到/usr/bin 中;将include文件夹中的文件全部复制到/usr/include文件家中 sudo cp -r /protoc-3/google/ /usr/include/ sudo cp -r /protoc-3/protoc /usr/bin/

  • LibVLC.java:32: error: cannot find symbol

@SuppressWarnings("unused, JniMissingFunction") ^ symbol: variable O location: class VERSION_CODES Note: /home/parallels/Workspace/vlc-android-sample/libvlc-android-samples/vlc-android/libvlc/src/org/videolan/libvlc/VLCObject.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 1 error :libvlc:compileReleaseJavaWithJavac FAILED

起初我以为是SuppressWarnings 没有引入但是后来通过在andridstudio中测试发现应该不是这个问题,后来发现是我手贱改了build号,所以只需要使用最新版本的build版本即可。


#在最后 我将自己编译的全部的文件以及libvlc.aar等文件上传到github 供大家下载使用 https://github.com/bokmark/VLC-Android

转载于:https://juejin.im/post/5b690cc4e51d45190d558ea4

你可能感兴趣的:(VLC在ubuntu环境下编译)