官网: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/omxil/iomx.o: In function IOMXContext': /Users/kevin/Documents/workspace/vlc-android-macbuild/vlc-full-cortex-a9-vfpv3-d16/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.