VLC在ubuntu環境下編譯

bok發表於2018-08-07

由於在使用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

如果出現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

相關文章