XBMC是一个优秀的自由和开源的(GPL)媒体中心软件。XBMC最初为Xbox而开发,可以运行在Linux、OSX、Windows、Android系统,用Assembly, C, C++, Python来开发,现在最新的版本是17.0,今天就来记录一下在Android系统上的编译和自己遇到一个小坑, 希望可以帮助到大家。
一、环境搭建
系统: Ubuntu 16.04 LTS 64位
编辑器: Android Studio
其他: Android SDK、Android NDK,
注:platform 目录下面得有android-21, 后面编译就是在android 5.0上的,NDK的版本最好是12以上的,我这边用的是android-ndk-r12b,还有这里为了方便把sdk和ndk都解压到用户目录下($HOME)
二、安装相应的库
# sudo apt-get install build-essential default-jdk git curl autoconf unzip zip zlib1g-dev gawk gperf cmake lib32stdc++6 lib32z1 lib32z1-dev lib32ncurses5
三、开始重要的一步-编译(这里费了不少脑细胞)
首先根据具体的选择相应的平台:arm、arm64、x86;我这边选择的是arm
- Building for arm architecture
# cd <android-ndk>
# ls platforms //查看是否有相应的android编译版本(android-21)
# cd build/tools
# ./make-standalone-toolchain.sh --ndk-dir=../../ --install-dir=/home/tovi/android-toolchain-arm-zw/android-21 --platform=android-21 --toolchain=arm-linux-androideabi-4.9
- Building dependencies
# cd $HOME/kodi-android/tools/depends
# ./bootstrap
# ./configure --with-tarballs=/home/tovi/xbmc-tarballs --host=arm-linux-androideabi --with-sdk-path=/home/tovi/android-sdk --with-ndk=/home/tovi/android-ndk-r12b --with-toolchain=/home/tovi/android-toolchain-arm-zw/android-21 --prefix=/home/tovi/xbmc-depends
# make -j20
# make -C target/binary-addons
- Building Kodi
#cd $HOME/kodi-android
#make -C tools/depends/target/xbmc
#make -j20 //这里参数是指定job个数,官方给的建议是-j20
#make apk //在kodi的根目录下生成apk
注:详细的可以参考源代码中的
readme(kodi_code/docs/README.android)
readme(kodi_code/tools/depends/README)
记录一下自己编译的时候遇到的坑
- 安装的ndk版本不对. 由于Google的东东在国内被墙导致下载东西超级不方便,所以就在网上下载了一个 ndk 10的,结果编译各种失败,后面换上12的就可以了,不过在新召开的2016 GDD上已经宣布了相应的资源可以在大陆可以访问了。
- 下载第三方开源包各种失败
tar stdin: unexpected end of file
No targets specified and no makefile found
后面看想到的解决办法: 去GNU官方网站下载(http://www.gnu.org/software);
输入下面命令重现编译相应的库,这里是编译gettext-native库
# make -j20 -C native/gettext-native distclean
# make -j20 -C native/gettext-native
使用make -j12编译成功之后,会出现下面字样
Kodi built successfully
编译出错
Configuring incomplete, errors occurred!
See also "/home/tovi/kodi-android/tools/depends/native/cmake-native/x86_64-linux-native/CMakeFiles/CMakeOutput.log".
See also "/home/tovi/kodi-android/tools/depends/native/cmake-native/x86_64-linux-native/CMakeFiles/CMakeError.log".
如果编译的时候出现这个错误,
解决办法:sudo apt-get install lib32ncurses5