VLC for android on unbutu 14.04 编译的几个问题总结

时间:2022-06-27 15:54:36

官网:https://wiki.videolan.org/AndroidCompile/#Environment_setup

按照官网进行环境配置(android 开发人员这些应该不是问题),需要注意的是几个环境变量必须要这样定义

ANDROID_SDK
ANDROID_NDK
export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools
可以将这些变量定义到环境变量文件中 ~/bashrc

可以参考:http://blog.csdn.net/jdplus/article/details/23341183

这里总结一下我编译过程中碰到的问题:

1.执行sh compile.sh

You must define ANDROID_NDK, ANDROID_SDK and ANDROID_ABI before starting.
They must point to your NDK and SDK directories.

但事实上我的环境变量都配额好了,后来我索性修改 了 git 获取的到android 目录代码 执行权限 chmod 777 -R android

再执行sh compile.sh 开始执行了。

在执行脚本compile.sh 过程中有段时间下载依赖包

a52dec-0.7.4.tar.gz  libebml-1.3.0.tar.bz2     LibVNCServer-0.9.9.tar.gz   ffmpeg-2763179.tar.gz     libgcrypt-1.6.1.tar.bz2    libvorbis-1.3.4.tar.xz

flac-1.3.0.tar.xz         libgpg-error-1.13.tar.bz2  libxml2-2.9.1.tar.gz   freetype-2.5.3.tar.gz     libgsm_1.0.13.tar.gz       live.2014.05.27.tar.gz
fribidi-0.19.6.tar.bz2    libiconv-1.14.tar.gz       nettle-2.6.tar.gz    gmp-6.0.0.tar.bz2         libmad-0.15.1b.tar.gz      openjpeg-1.5.0.tar.gz
gnutls-3.1.25.tar.xz      libmatroska-1.4.1.tar.bz2  opus-1.1.tar.gz   jpegsrc.v9.tar.gz         libmodplug-0.8.8.5.tar.gz  postproc-git.tar.gz
libass-0.11.2.tar.gz      libmpeg2-0.5.1.tar.gz      speexdsp-git.tar.gz   libdvbpsi-1.2.0.tar.bz2   libogg-1.3.1.tar.xz        speex-git.tar.gz
libdvdcss-1.2.13.tar.bz2  libpng-1.6.10.tar.xz       taglib-1.9.1.tar.gz   libdvdnav-git.tar.xz      libssh2-1.4.3.tar.gz       zlib-1.2.8.tar.gz
libdvdread-4.9.9.tar.bz2  libtheora-1.1.1.tar.xz

到目录android/vlc/contrib/tarballs 目录下

在下载过程中有时候下载链接超时,无法链接什么的,一定要耐心解决。将下载链接到浏览器中下载,并重命名所需的文件。如speex-git.tar.gz

2.http://*.com/questions/24574383/vlc-android-compile-patching-error 这个错误,

在*.com好像没人回答。

你可以对比你的源文件目录下:vlc/contrib/src/speexdsp 和最新vlc git 源文件对比 https://github.com/videolan/vlc/blob/master/contrib/src/speexdsp/rules.mak

删除两行代码

<span style="font-size:18px;">	$(APPLY) $(SRC)/speexdsp/neon.patch
	$(APPLY) $(SRC)/speexdsp/includedir.patch</span>

重新执行sh compile.sh 

3.SharedLibrary : libiomx-gingerbread.so ./obj/local/armeabi-v7a/objs-debug/iomx-gingerbread/__/__/./vlc/modules/codec/omxi‌​l/iomx.o: In function IOMXContext': /Users/kevin/Documents/workspace/vlc-android-macbuild/vlc-full-cortex-a9-vfpv3-d‌​16/vlc-android/jni/../.././vlc/modules/codec/omxil/iomx.cpp:39: undefined reference to __cxa_end_cleanup

错误,查看你的vlc-android/jni/Application.mk 

删除

# Add these lines: APP_CPPFLAGS += -frtti APP_CPPFLAGS += -fexceptions # I haven't seen them

可以参考:http://*.com/questions/10838905/problems-compiling-vlc-for-android-libvlcjni-so

在编译过程中可能会出现各种问题,具体问题具体分析。google神马的可以解决我们工作的%60问题,可是解决不了%100,但遇到问题也要多google。

Good luckly.