如題,不知道版內,是否有人在玩Android?
最近要把 Android SDK 2.2 升級到2.34
結果出現一堆錯誤,發現好像應該用64bit的系統去建置?
不知道有沒有人有同樣問題?
PS.
OS:ubuntu 9.1
SDK:Android SDK 2.1/2.2
CPU:32 bit
找到方向了
http://source.android.com/source/initializing.html
以上連結是官方的編譯教學,其中 Installing required packages 這一個大標就是提醒user 需要補安裝這些必要得套件.當然官方列的軟體套件是for 64bit ubuntu版.但是有經驗的老手懂得找出相對應的32bit套件,安裝好.
看一下apt-get 的指令內容,就能猜到還要補足哪些套件
leolarrel wrote:
很多編譯時需要用到的...(恕刪)
It's alright on FC14 32bit/Ubuntu 10.10 32bit(Friendlyarm mini6410 android 2.3.4 source)
編譯環境FC14 32bit
一、準備工作,安裝編譯過程中需要的32位Library,需要使用root用戶權限操作安裝命令
yum install alsa-firmware.noarch alsa-lib.i686 alsa-lib-devel.i686 alsa-tools.i686 alsa-tools-firmware.i686 audiofile-devel.i686 cups-devel.i686 dbus-devel.i686 esound-devel.i686 \
fontconfig-devel.i686 freetype.i686 freetype-devel.i686 giflib-devel.i686 hal-devel.i686 \
lcms-devel.i686 libICE-devel.i686 libjpeg-devel.i686 libpng-devel.i686 libSM-devel.i686 \
libusb-devel.i686 libX11-devel.i686 libXau-devel.i686 libXcomposite-devel.i686 \
libXcursor-devel.i686 libXext-devel.i686 libXi-devel.i686 libXinerama-devel.i686 \
libxml2-devel.i686 libXrandr-devel.i686 libXrender-devel.i686 libxslt-devel.i686 \
libXt-devel.i686 libXv-devel.i686 libXxf86vm-devel.i686 measa-libGL.i686 mesa-libGL-devel.i686 mesa-libGLU.i686 mesa-libGLU-devel.i686 \
ncurses-devel.i686 openldap-devel.i686 openssl-devel.i686 zlib-devel.i686 sane-backends-devel.i686 \
xorg-x11-proto-devel glibc.i686 glibc-devel.i686 prelink libstdc++-devel.i686 pulseaudio-libs-devel.i686 \
gnutls-devel.i686 libgphoto2-devel.i686 openal-soft-devel.i686 isdn4k-utils-devel.i686 \
gsm-devel.i686 libv4l-devel.i686 cups-devel.i686 libtiff-devel.i686 \
gperf flex bison git-core gnupg gcc make libstdc++.i686 SDL SDL-devel libao.i686 readline-devel readline \
libgcc.i686 lzo-devel.i686 libuuid.i686 libXrandr.i686 libXext.i686 gettext
二、修改 frameworks/base/libs/utils/Android.mk
將
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)
改為
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive
三、修改 build-android
因為源碼裡面的JDK1.6.0_23是32位版本,所以不能使用。將3-5,15行注釋掉,在15行下增加一行,重新加入你的JDK目錄,如果本身環境變量已經有了,可以不加
我改成了如下的內容
export PATH=/usr/java/jdk1.6.0_25/bin:PATH
編譯Kernel
複制.config
編輯Makefile,設定CROSS_COMPILE ?=/home/Android-2.3.4/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
make -j2
到執行路徑
cd /home/Android-2.3.4
我的設定PATH
PATH="/home/Android-2.3.4/jdk1.6.0_23/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/Android-2.3.4/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin"
export JAVA_HOME=/home/Android-2.3.4/jdk1.6.0_23
export ANDROID_JAVA_HOME=$JAVA_HOME
export JAVA_BIN=/home/Android-2.3.4/jdk1.6.0_23/bin
export CLASSPATH=/home/Android-2.3.4/jdk1.6.0_23/lib/dt.jar:/home/Android-2.3.4/jdk1.6.0_23/lib/tools.jar
export ANDROID_PRODUCT_OUT=/home/Android-2.3.4/out/target/product/generic
export PATH=$PATH:/home/Android-2.3.4/out/target/product/generic
export PATH=$PATH:/home/Android-2.3.4/out/host/linux-x86/bin
source /home/Android-2.3.4/build/envsetup.sh
./setenv
export ECLIPSE_HOME=/home/eclipse
./build-android
編譯環境Ubuntu10.10 32bit/Kernel 2.6.32.24 OK
Ubuntu 10.10/kernel 2.6.35-22-generic會出現這個問題
重新編譯Kernel 2.6.32.24(www.kernel.org下載)
錯誤:
prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.11' not found (required by prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc)
prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.11' not found (required by prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc)
解決:
Ubuntu install kernel 2.6.32.24
sudo apt-get install libncurses5-dev
make menuconfig
make -j2
make modules_install
make install
update-grub
重新開機
進入2.6.32.24選項
一、準備工作,安裝編譯過程中需要的32位Library,需要使用root用戶權限操作安裝命令
Ubuntu
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev libx11-dev libreadline5-dev libreadline5 libz-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos uuid liblzo2-2 liblzo2-dev
二、修改 frameworks/base/libs/utils/Android.mk
將
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)
改為
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive
三、修改 build-android
因為源碼裡面的JDK1.6.0_23是32位版本,所以不能使用。將3-5,15行注釋掉,在15行下增加一行,重新加入你的JDK目錄,如果本身環境變量已經有了,可以不加
我改成了如下的內容
export PATH=/usr/java/jdk1.6.0_25/bin:PATH
編譯Android Kernel
複制.confign_android_n43 為.config
編輯Makefile,設定CROSS_COMPILE ?=/home/Android-2.3.4/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
make -j2
到執行路徑
cd /home/Android-2.3.4
我的設定PATH
PATH="/home/Android-2.3.4/jdk1.6.0_23/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/Android-2.3.4/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin"
export JAVA_HOME=/home/Android-2.3.4/jdk1.6.0_23
export ANDROID_JAVA_HOME=$JAVA_HOME
export JAVA_BIN=/home/Android-2.3.4/jdk1.6.0_23/bin
export CLASSPATH=/home/Android-2.3.4/jdk1.6.0_23/lib/dt.jar:/home/Android-2.3.4/jdk1.6.0_23/lib/tools.jar
export ANDROID_PRODUCT_OUT=/home/Android-2.3.4/out/target/product/generic
export PATH=$PATH:/home/Android-2.3.4/out/target/product/generic
export PATH=$PATH:/home/Android-2.3.4/out/host/linux-x86/bin
source /home/Android-2.3.4/build/envsetup.sh
./setenv
export ECLIPSE_HOME=/home/eclipse
./build-android
這樣就會OK了




























































































