vlc for android 編譯過程


gradle的相關問題

1.下載gradle會相當慢 可以修改腳本里面的下載地址 推薦這個網站https://services.gradle.org/distributions/

2.gradle的緩存下載相當慢 可以修改build.gradle 把里面的修改成圖片這樣 阿里雲的

maven {
            url "http://maven.aliyun.com/nexus/conten/groups/public/"
        }

 

 

jcenter { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }

 

3.刪除Ubuntu自帶的java

apt-cache search java | awk '{print($1)}' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e '^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)' -e 'java-common' | xargs sudo apt-get -y remove
apt-get -y autoremove
dpkg -l | grep ^rc | awk '{print($2)}' | xargs sudo apt-get -y purge
bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf
rm -rf /usr/lib/jvm/*

 4.遇到下面的問題

make[2]: Leaving directory '/vlc/vlc-android/vlc/build-android-aarch64-linux-android/po'
Making install in share
make[2]: Entering directory '/vlc/vlc-android/vlc/build-android-aarch64-linux-android/share'
  GEN      vlc.appdata.xml
make[3]: Entering directory '/vlc/vlc-android/vlc/build-android-aarch64-linux-android/share'
make[3]: Nothing to be done for 'install-exec-am'.
  GEN      vlc.appdata.xml
 /usr/bin/mkdir -p '/vlc/vlc-android/vlc/build-android-aarch64-linux-android/install/share/metainfo'
 /usr/bin/install -c -m 644 ../../share/vlc.appdata.xml '/vlc/vlc-android/vlc/build-android-aarch64-linux-android/install/share/metainfo'
/usr/bin/install: cannot stat '../../share/vlc.appdata.xml': No such file or directory
make[3]: *** [Makefile:1355: install-appdataDATA] Error 1
make[3]: Leaving directory '/vlc/vlc-android/vlc/build-android-aarch64-linux-android/share'
make[2]: *** [Makefile:1691: install-am] Error 2
make[2]: Leaving directory '/vlc/vlc-android/vlc/build-android-aarch64-linux-android/share'
make[1]: *** [Makefile:1555: install-recursive] Error 1
make[1]: Leaving directory '/vlc/vlc-android/vlc/build-android-aarch64-linux-android'
make: *** [Makefile:2024: install] Error 2

只需要把

cp ./vlc-android/vlc/share/vlc.appdata.xml.in.in ./vlc-android/vlc/share/vlc.appdata.xml

自己注意路徑哈 

5.配置gradle離線

編譯成功后第二次編譯 有時候會下載更新些東西 很麻煩 導致編譯很慢 可以配置離線

編輯compile.sh把里面要使用gradlew命令的都手動加一個參數--offline

6.配置ffmpeg的代碼

自帶的腳本用git下載ffmpeg會很慢 如果有外網環境可以自己下載 然后放到相應的目錄

git clone http://git.videolan.org/git/ffmpeg.git
tar -czf ffmpeg.tar.xz ffmpeg/

然后重命名需要的git對應的hash版本 例如我現在用的eaff5fcb7cde8d1614755269773d471d3a3d1bfc這個值可以在vlc/contrib/src/ffmpeg/rules.mak中的FFMPEG_HASH

找到

mv ffmpeg.tar.xz ffmpeg-eaff5fcb7cde8d1614755269773d471d3a3d1bfc.tar.xz
echo "eaff5fcb7cde8d1614755269773d471d3a3d1bfc ../../contrib/tarballs/ffmpeg-eaff5fcb7cde8d1614755269773d471d3a3d1bfc.tar.xz">>ffmpeg-eaff5fcb7cde8d1614755269773d471d3a3d1bfc.githash

 7.出現如下問題

libncurses.so.5: cannot open shared object file

會導致編譯contrib下面的代碼出現問題 執行如下安裝即可

apt-get install libncurses5

 8.血的教訓 記得編譯release版本 不然太多的錯誤了

compile.sh --release

 9.解決如下問題

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]: *** [lib/fseterr.o] Error 1
make[3]: *** Waiting for unfinished jobs....

直接把vlc/extras/tools/bison/lib/fseterr.c中的fseterr (FILE *fp)的內容刪除即可 改成空函數

10.解決SDK的license問題 我是用命令行安裝的

tools/android update sdk --no-ui

結果有個版本沒有安裝 需要手動再安裝一下

先查一下序號

./tools/android list sdk --all

輸出14- Android SDK Build-tools, revision 27.0.1

所以執行如下命令安裝

./tools/android update sdk -u -a -t 14

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM