Android VLC 编译总结

最近在一个项目里需要一个Android APP能够同时播放多路流媒体视频,还需要具有录像、截屏功能。在调研多个方案之后,选择移植VLC播放器。需要在Linux(本人使用Ubuntu 14。10)下编译VLC for Android的源码,根据官方的Wiki,以及自己实际操作的步骤,总结为如下:



需要注意的是编译的过程都是普通用户权限,不需要root权限。


1. 安装工具

sudo apt-get install gcc g++ ant autoconf automake autopoint cmake gawk libtool m4 patch pkg-config protobuf-c* ragel subversion unzip 

在64位系统上还需要安装一些32位的库

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

在一些旧的Ubuntu系统上,还需要安装ia32-libs

sudo apt-get install ia32-libs

2. 安装vlc相关依赖库

sudo apt-get build-dep vlc

3. 安装android sdk 和 ndk

SDK下载地址: http://developer.android.com/sdk/index.html

NDK下载地址: http://developer.android.com/tools/sdk/ndk/index.html

如果下载速度慢的话,也可以选择国内的镜像,比如:(http://mirrors.neusoft.edu.cn/android/repository/

3,1 下载安装完场后,需要添加环境变量

//编辑文件  ~/.bashrc 或者 /etc/profile
//在文件尾部添加以下三句话
  export ANDROID_SDK=/path/to/android-sdk
  export ANDROID_NDK=/path/to/android-ndk
  export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools

//然后通过以下命令是环境变量生效
source  ~/.bashrc
或者 source /etc/profile

3.2 更新SDK

在后续编译apk时需要合适版本的sdk,因此在环境变量生效后要跟新sdk,在终端执行命令

android

启动android sdk manager 下载相应版本的sdk,我编译时下载的是SDK 20版本。

4. 获取VLC Android源码

git clone git://git.videolan.org/vlc-ports/android.git

设置编译的平台,一般手机都是armeabi-v7a平台。

 export ANDROID_ABI=armeabi-v7a

开始编译

sh compile.sh

执行该命令后就开始下载一些第三方源码和工具。有些库的网址是访问不了的,自己想办法下好了放进“vlc/contrib/tarballs”目录里,然后重新执行编译命令即可。

为了方便大家,我将自己下载的第三方库上传到了百度云,大家如果网络不好可以直接放到vlc/contrib/tarballs文件夹下。这样大大加快编译速度。下载地址http://pan.baidu.com/s/1bnhTzZ5

4. 编译过程中遇到的问题解决

64位ubuntu运行adt缺少libstdc++.so.6和libz.so.1文件

错误1:

adb: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

‘adb version’ failed!

Failed to parse the output of ‘adb version’:

解决方法:

sudo apt-get install lib32stdc++6

错误2:

adt-bundle-linux-x86_64-20140702/sdk/build-tools/android-4.4W/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory

解决方法:

sudo apt-get install lib32z1

下载gradle出错

编译vlc for android的时候,出现如下错误:

*** No ANDROID_ABI defined architecture: using ARMv7
Downloading gradle
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   354  100   354    0     0    455      0 --:--:-- --:--:-- --:--:--   455
Archive:  gradle-2.2.1-all.zip
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of gradle-2.2.1-all.zip or
        gradle-2.2.1-all.zip.zip, and cannot find gradle-2.2.1-all.zip.ZIP, period.

解决办法修改 compile.sh at Line 81:

wget ${GRADLE_URL} 2>/dev/null || curl -O ${GRADLE_URL}
=>wget ${GRADLE_URL} 2>/dev/null || curl -O -L ${GRADLE_URL}

gettext的版本过低问题


//下载 gettext-0.16.1.tar.gz 然后执行解压,执行下属命令安装。
./configure
make
make install
can solve this problem.

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-14 15:12:54

Android VLC 编译总结的相关文章

【转】vlc android 代码编译

转自:http://blog.csdn.net/asircao/article/details/7734201 系统:ubuntu12.04代码:git://git.videolan.org/vlc-ports/android.git代码版本:375646994d0602 年初的时候搞了三个月的vlc android.昨天看到vlc android的beta版本发布了,决定编译一个看看效果.把自己此次的编译过程记录下来,供朋友们参考.下文中的文件路径,要替换成正确的路径. 1. 搭建ubuntu

VLC编译

http://blog.csdn.net/hdh4638/article/details/7602321 1 下载代码 ki.videolan.org/VLC_Source_code git colone git://git.videolan.org/vlc.git 2 编译 http://wiki.videolan.org/UnixCompile A 编译工具检测 % sudo apt-get install git libtool build-essential pkg-config aut

Android NDK 编译加入so文件

在cocos2d-x中集成百度语音识别的时候,运行build_native.py会把libs/armeabi目录清空. 以下是解决办法,把so文件放在jni/prebuilt里面. 修改Android.mk文件,主要有两行include $(CLEAR_VARS) LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) #百度语音识别so LOCAL_MODULE := BDVoiceRecognitionClient_V1 LOCAL_SRC_FI

android 反编译网址记录

记录一个关于Android反编译的网址,写的很详细: http://unclechen.github.io/2016/09/07/Android%E5%8F%8D%E7%BC%96%E8%AF%91%E6%8A%80%E6%9C%AF%E6%80%BB%E7%BB%93/

android 单独编译某个模块

第一次下载好Android源代码工程后,我们通常是在Android源代码工程目录下执行make命令,经过漫长的等待之后,就可以得到Android系统镜像system.img了.以后如果我们修改了Android源代码中的某个模块或者在Android源代码工程新增一个自己的模块,是不是还是执行make命令呢?答案是否定的,Google为我们准备了另外的命令来支持编译单独的模块,以及重新打包system.img的命令.在继续学习Android源代码之前,就让我们先来看看这个命令吧. 一. 首先在And

Error:Execution failed for task ':app:compileDebugAidl'. > aidl is missing(Android Studio编译错误)

今天下载了一个1.2.1.1版本的Android Studio,使用VPN更新好SDK之后就新建了一个hello world工程测试一下环境,然后就出现以下错误: Error:Execution failed for task ':app:compileDebugAidl'. > aidl is missing 什么情况?全新安装的环境也有错误?Google发布这个工具时没有测试好吗? 没搞过这个工具,一阵搜索得到以下方案: 1.右键工程->Open Module Settings 2.将Bu

【转】Android源代码编译命令m/mm/mmm/make分析--不错

原文网址:http://blog.csdn.net/luoshengyang/article/details/19023609 在前文中,我们分析了Android编译环境的初始化过程.Android编译环境初始化完成后,我们就可以用m/mm/mmm/make命令编译源代码了.当然,这要求每一个模块都有一个Android.mk文件.Android.mk实际上是一个Makefile脚本,用来描述模块编译信息.Android编译系统通过整合Android.mk文件完成编译过程.本文就对Android源

Android系统编译时遇到的几个.mk的疑惑。

在Android4.2的源码Build/prduct_config.mk里面遇到几个疑惑: # Convert a short name like "sooner" into the path to the product # file defining that product. # INTERNAL_PRODUCT := $(call resolve-short-product-name, $(TARGET_PRODUCT)) ifneq ($(current_product_ma

android反编译odex文件

关于android的反编译工具,相信大家并不陌生 如APK-TOOL,dex2jar APK-TOOL 用于反编译出布局文件 下载地址http://code.google.com/p/android-apktool/downloads/list dex2jar 用于将dex反编译成.jar包 下载地址:http://code.google.com/p/dex2jar/downloads/list 生成的jar包可用jd-gui来查看(前提是代码未被混淆) 但是如果我们从rom里面提取出的apk是