2013年3月22日 星期五

Complie Android source code on Ubuntu 12.10 64bit with VMPlayer


  1. 安裝Ubuntu
    1. 下載Ubuntu iso
      http://www.ubuntu-tw.org/modules/tinyd0/
    2. 安裝VMPlayer
      https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/5_0
    3. 建立一個Virtual Machine,並安裝Ubuntu
      硬碟空間最好有40G以上
      記憶體分配2G以上 (不然complie時可能會遇到記憶體空間不足)
  2. 下載Android source code (參考網址 http://source.android.com/source/downloading.html)
    1. 安裝cURL $ sudo apt-get install curl
    2. 安裝git $ sudo apt-get install git-core
    3. 下載repo
      $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > repo
      $ chmod a+x repo
      $ sudo chown root repo
      $ sudo chgrp root repo
      $ sudo mv repo /usr/local/bin
    4. 初始化 $ mkdir android_4.2.2_r1 $ cd android_4.2.2_r1 $ repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1 版本資訊可以到這裡取得 http://source.android.com/source/build-numbers.html
    5. 開始下載
      $ repo sync
  3. Complie
    1. 安裝JDK
      Download jdk-6u43-linux-x64.bin $ chmod +x /usr/lib/jdk-6u43-linux-x64.bin $ ./jdk-6u43-linux-x64.bin $ sudo mv ./jdk1.6.0_43 /usr/lib/ $ sudo gedit /etc/environment Add      PATH="...::/usr/lib/jdk1.6.0_43/bin"     CLASSPATH="/usr/lib/jdk1.6.0_43/lib"     JAVAHOME="/usr/lib/jdk1.6.0_43/lib" $ source /etc/environment
    2. 安裝complie tools
      $ sudo apt-get install g++-multilib $ sudo apt-get install flex bison gperf xsltproc libxml2-utils 在64-bit OS 須另外安裝 ia32-libs $ sudo apt-get install ia32-libs
    3. 開始complie $ make
  4. 錯誤解決
    1. Complie 錯誤: make: *** [out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/noproguard.classes-with-local.dex] Killed 這是因為記憶體不足,最簡單的方法就是把記憶體加大 參考: http://fsysky.blog.163.com/blog/static/113816509201231010426881/
    2. Complie 錯誤: fatal error: bits/predefs.h: No such file or directory 解決方法: 安裝 libc6-dev-i386 或 gcc-multilib (會包含libc6-dev-i386) $ sudo apt-get install libc6-dev-i386 or $ sudo apt-get install gcc-multilib
    3. Complie 錯誤: prebuilts/tools/gcc-sdk/gcc: line 40: prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/i686-linux-gcc: No such file or directory 解決方法: 安裝 ia32-libs $ sudo apt-get install ia32-libs 參考: http://www.redwolf-blog.com/?p=1899
    4. 安裝 VMware-tools 遇到 The path "" is not a valid path to the 3.5.0-26-generic kernel headers. Would you like to change it? 解決方法: 安裝 Kernel Headers Package $ sudo apt-get install linux-headers-$(uname -r) 參考: http://www.cyberciti.biz/faq/howto-install-kernel-headers-package/

沒有留言:

張貼留言