您的位置:首页 > 移动开发 > Android开发

xbmc for android 编译

2013-08-04 09:44 267 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android