Ubuntu 15编译vlc for android 1.9.5

来源:互联网 发布:程序员教程第三版下载 编辑:程序博客网 时间:2024/05/16 12:54
    项目需要vlc播放网络上的mp4文件,支持字幕,最后找到了vlc for android。

    下面是我的编译过程的记录,其中也记录了一些linux操作相关的,只是为了新手方便操作。

    本文参考了https://wiki.videolan.org/AndroidCompile


一、下载ubuntu 15.10 64位系统,在vmware 10中安装,采用桥接方式连接网络。我的机器是i5的cpu,选择1个芯片,4个核心。当retrieving file 和安装语言包时点击文字左边的那个小三角形,此时右边会出现“跳过”按钮。
   设置好用户名及密码。

    给root设置密码:
    sudopasswd root
    password for you :---> 输入你的密码,不会显示
    Enter new UNIXpassword:
    ---> 设置root 密码
    Retype new UNIXpassword:
    -->重复

    sudo apt-get install gawk

    sudo apt-get install automake ant autopoint cmake build-essential libtool patch pkg-config protobuf-compiler ragel subversion unzip git


   sudo dpkg --add-architecture i386

   sudo apt-get update

   sudo apt-get install zlib1g:i386 libstdc++6:i386 libc6:i386


    以root用户登录,以免权限问题。
    
    Ctrl+Alt+F2 打开终端     
    Ctrl+Alt+F7 回到图形界面


二、安装ssh,从而可以使用SecureCRT访问虚拟机的Ubuntu,方便操作(可以在windows和SecureCRT之间拷贝、粘贴)。
    apt-get install openssh-server

    ssh允许root登录:   修改/etc/ssh/sshd_config,将PermitRootLogin值改yes
    关掉防火墙:ufw disable
    启动服务:service ssh start


三、下载JDK,Android SDK,NDK
    JDK:    http://www.oracle.com/technetwork/java/javase/downloads/index.html
    SDK:    http://developer.android.com/sdk/index.html
    NDK:    http://developer.android.com/sdk/ndk/index.html

   

    mkdir /dev_tools

    将这些都解压到/dev_tools/目录下(解压到当前目录后执行拷贝,如:cp -R jdk1.8.0_73 /dev_tools),如下图所示:       

    查看目录权限 ls -l /dev_tools

    如果提示权限问题可以修改权限:chmod 777 /dev_tools
    
四、配置环境变量
    export JAVA_HOME=/dev_tools/jdk1.8.0_73
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}
    export ANDROID_SDK=/dev_tools/android-sdk-linux
    export ANDROID_NDK=/dev_tools/android-ndk-r11b

    export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools:${JAVA_HOME}/bin    
    
五、下载代码
    mkdir /workroom
    cd /workroom
    git clone https://code.videolan.org/videolan/vlc-android.git
    
六、编译及错误处理
    cd /workroom/vlc-android/
    ./compile.sh -a arm64-v8a --release
    
    此时会自动下载gradle及源代码和各种依赖库。
    
    No ANDROID_ABI defined architecture: using ARMv7
    这是因为没有指定ANDROID_ABI,可以通过-a armeabi-v7a指定,还可以是armeabi,armeabi-v5,armeabi-nofpu,arm64-v8a等,具体可以参见compile.sh。
    关于compile.sh, --release可以编译发布版,-s keystore文件 -p 密码。
        
    如果中间下载文件失败,此时可以启用或者停止vpn再试一次,我就发现启用vpn有些文件下载不了,而有些却必须启用vpn,或者换一个连接站点。
    
    configure: error: You need 32-bits luac when using lua from contrib
    我试着用sudo apt-get install liblua5.2:i386及sudo apt-get install liblua5.1-0-dev:i386还是出现同样的问题,最后采用暴力手段,修改/vlc/configure,注释掉#as_fn_error $?  "You nedd 32-bits luac when using lua from contrib."
    
    
    Build tools 23.0.2 missing. Downloading...
    Platform tools missing. Downloading...
    Compilation API android-23 missing. Downloading...
    Support library repository missing. Downloading...

    这个说明需要23.0.2的版本,等着下载即可。

 

    Pluginis too old, please update to a more recent version...

    修改根目录下的build.gradle, dependencies: com.android.tools.build.gradle:2.0.+

    
    最后输出目录在/workroom/vlc-android/vlc-android/build/outputs/apk,恭喜你,终于等到开花结果了!
    下一步研究如何将so、jar及部分java文件集成到自己的app中。
   
    谢谢在此编译过程中直接或间接帮助过我的朋友!
1 0
原创粉丝点击