现在的位置: 首页 > 综合 > 正文

xbmc for android 编译

2014年09月02日 ⁄ 综合 ⁄ 共 5675字 ⁄ 字号 评论关闭

1、安装jdk6

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java6-installer

2、安装必需的ubuntu安装包

sudo apt-get install build-essential default-jdk git-core curl autoconf \
       unzip zip zlib1g-dev gawk gperf cmake

3、安装android SDK

  a. 进入下载页面http://dl.google.com/android/android-sdk_r14-linux.tgz下载android-sdk_r14-linux.tgz到目录/opt

  b. 解压android-sdk_r14-linux.tgz到/opt/android-sdk-linux/

  c. 下载android sdk 离线包android-14_r03.zip,并解压到/opt/android-sdk-linux/platforms/android-14

  d. 下载离线包platform-tools_r14-linux.zip,并解压到/opt/android-sdk-linux/platform-tools

4、安装android NDK

进入下载页面dl.google.com/android/ndk/android-ndk-r8e-linux-x86.tar.bz2下载android-ndk-r8e-linux-x86.tar.bz2到目录/opt/android-ndk-r8e

5、安装android工具链For XBMC

cd /opt/android-ndk-r8e
ls platforms
cd build/tools
./make-standalone-toolchain.sh --ndk-dir=../../ \
     --install-dir=../../../android-toolchain/android-14 --platform=android-14 \
     --toolchain=arm-linux-androideabi-4.7

6、创建一个debug key 来签名debug apk

keytool -genkey -keystore ~/.android/debug.keystore -v -alias androiddebugkey -dname "CN=Android Debug,O=Android,C=US" -keypass android -storepass android -keyalg RSA -keysize 2048 -validity 10000

7、获取XBMC源码

cd $HOME
git clone git://github.com/xbmc/xbmc.git xbmc-android
cd xbmc-android
git submodule update --init addons/skin.touched

8、编译XBMC依赖库

cd $HOME/xbmc-android/tools/depends
./bootstrap
./configure --with-toolchain=/opt/android-toolchain/android-14 --prefix=/opt/xbmc-deps --host=arm-linux-androideabi --with-sdk-path=/opt/android-sdk-linux --with-ndk=/opt/android-ndk-r8e --with-sdk=android-14 --with-tarballs=/tmp/xbmc-android
make -j 20

9、编译XBMC源码

cd $HOME/xbmc-android
make -C tools/depends/target/xbmc
make
make apk

10、安装生成的xbmc apk包到android设备

cd $HOME/xbmc-android
adb devices
adb -s 02efd7ab install -r ./xbmcapp-armeabi-v7a-debug.apk

注:02efd7ab 是设备id,可通过adb devices命令获得

11、安装完成后,运行XBMC

很郁闷的发现在小米1(android2.3.5)设备上运行XBMC,直接异常退出!

啊啊啊啊啊啊啊啊啊啊啊 郁闷啊。。。。。。。。

12、运行命令 adb -s 02efd7ab logcat 截取系统log查看XBMC异常原因,发现loadLibrary出错

以下是截取的log信息:

W/Parcel  (  421): Attempt to read object from Parcel 0x45532dc8 at offset 200 that is not in the object list
I/ActivityManager(  211): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=org.xbmc.xbmc/.Splash bnds=[125,241][245,376] } from pid 348
D/PhoneWindow(  348): couldn't save which view has focus because the focused view com.android.launcher2.CellScreen@4050cee0 has no id.
I/ActivityManager(  211): Start proc org.xbmc.xbmc for activity org.xbmc.xbmc/.Splash: pid=966 uid=10061 gids={1015, 3003}
I/WindowManager(  211): Setting rotation to 1, animFlags=1
I/ActivityManager(  211): Config changed: { scale=1.0 fontSize=2 themeChanged=0 themeChangedFlags=0 imsi=460/0 loc=zh_CN touch=3 keys=1/1/2 nav=1/1 orien=2 layout=34 uiMode=17 seq=5}
E/MP-Decision(  255): UP Nw:2.700000 Tw:180 rq:17.476190 seq:205.000000
E/ThermalDaemon(  256): Maximum CPU[1] frequency 1512000 KHz
W/dalvikvm(  966): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lorg/xbmc/xbmc/Splash;
W/dalvikvm(  966): Class init failed in newInstance call (Lorg/xbmc/xbmc/Splash;)
W/dalvikvm(  966): threadid=1: thread exiting with uncaught exception (group=0x40015568)
E/AndroidRuntime(  966): FATAL EXCEPTION: main
E/AndroidRuntime(  966): java.lang.ExceptionInInitializerError
E/AndroidRuntime(  966):     at java.lang.Class.newInstanceImpl(Native Method)
E/AndroidRuntime(  966):     at java.lang.Class.newInstance(Class.java:1409)
E/AndroidRuntime(  966):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
E/AndroidRuntime(  966):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1578)
E/AndroidRuntime(  966):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1680)
E/AndroidRuntime(  966):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
E/AndroidRuntime(  966):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
E/AndroidRuntime(  966):     at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(  966):     at android.os.Looper.loop(Looper.java:130)
E/AndroidRuntime(  966):     at android.app.ActivityThread.main(ActivityThread.java:3703)
E/AndroidRuntime(  966):     at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(  966):     at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime(  966):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
E/AndroidRuntime(  966):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
E/AndroidRuntime(  966):     at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(  966): Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1311]:   141 cannot locate '_ZN7android8OMXCodec6CreateERKNS_2spINS_4IOMXEEERKNS1_INS_8MetaDataEEEbRKNS1_INS_11MediaSourceEEEPKcjRKNS1_I13ANativeWindowEE'...
E/AndroidRuntime(  966):
E/AndroidRuntime(  966):     at java.lang.Runtime.loadLibrary(Runtime.java:434)
E/AndroidRuntime(  966):     at java.lang.System.loadLibrary(System.java:554)
E/AndroidRuntime(  966):     at org.xbmc.xbmc.Splash.<clinit>(Splash.java:36)
E/AndroidRuntime(  966):     ... 15 more
W/ActivityManager(  211):   Force finishing activity org.xbmc.xbmc/.Splash
E/InputDispatcher(  211): channel 'StatusBarView (server)' ~ Consumer closed input channel or an error occurred.  events=0x8
E/InputDispatcher(  211): channel 'StatusBarView (server)' ~ Channel is unrecoverably broken and will be disposed!
I/WindowManager(  211): Setting rotation to 0, animFlags=1
I/ActivityManager(  211): Config changed: { scale=1.0 fontSize=2 themeChanged=0 themeChangedFlags=0 imsi=460/0 loc=zh_CN touch=3 keys=1/1/2 nav=1/1 orien=1 layout=34 uiMode=17 seq=6}
W/ActivityManager(  211): Activity pause timeout for HistoryRecord{40926570 org.xbmc.xbmc/.Splash}
E/MP-Decision(  255): DOWN Ns:2.100000 Ts:270 rq:1.100000 seq:317.000000

13、到目前为止,还没有找到解决办法,如果哪位网友已经在android设备上成功编译运行了XBMC,希望能给我指点一下,谢谢!

注:可以在csdn上给我留言或者email给我:manshilingkai@163.com

抱歉!评论已关闭.