下面是我編譯的過程:
1,配置環(huán)境
1>,需要安裝的包
$sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
這時會提示sun-java5-jdk找不到源
所以修改源文件
$vim /etc/apt/sources.list
在最后一行中加入地址
deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse 或者
//deb http://cz.archive.Ubuntu.com/ubuntu hardy-updates main multiverse
更新源文件
$ sudo apt-get update
在重新安裝
$sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
可能還要裝以下包,都打上,勤快一點吧,哎
$sudo apt-get install make
$sudo apt-get install gcc
$sudo apt-get install g++
$sudo apt-get install libc6-dev
$sudo apt-get install patch
$sudo apt-get install texinfo
$sudo apt-get install zlib1g-dev
$sudo apt-get install valgrind
2,在make sdk時需要sun-java5-jdk,用sun-java6-jdk會出錯,而make的時候可以使用sun-java6-jdk。
所以安裝sun-java6-jdk
$ sudo apt-get install sun-java6-jdk
然后做以下修改
$cd /etc/alternatives
$sudo rm javadoc.1.gz
$sudo ln -s /usr/lib/jvm/java-1.5.0-sun/man/man1/javadoc.1.gz javadoc.1.gz
$sudo rm javadoc
$sudo ln -s /usr/lib/jvm/java-1.5.0-sun/bin/javadoc javadoc
3,設(shè)置環(huán)境變量
$vim ~/.bashrc
在最后一行添加:
JAVA_HOME=/usr/lib/jvm/java-6-sun
JRE_HOME=${JAVA_HOME}/jre
export ANDROID_JAVA_HOME=$JAVA_HOME
export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export JAVA_HOME;
export JRE_HOME;
export CLASSPATH;
HOME_BIN=~/bin/
export PATH=${PATH}:${JAVA_PATH}:${HOME_BIN};
保存后,同步更新:
$source ~/.bashrc
4,安裝repo(用來更新android源碼)
創(chuàng)建~/bin目錄,用來存放repo程序,如下:
$cd ~
$mkdir bin
并加到環(huán)境變量PATH中,其實第3步驟已經(jīng)添加了
下載repo腳本并使其可執(zhí)行:
$curl http://android.git.kernel.org/repo >~/bin/repo
$chmod a+x ~/bin/repo
4,初始化repo
repo是android對git的一個封裝,簡化了一些git的操作。
創(chuàng)建工程目錄:
$mkdir android
$cd android
repo初始化
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake
如果沒有加-b cupcake,那么下的是最新的源代碼,不過在make編譯時可能會出現(xiàn)意想不到的錯誤
如:
在main.mk中會出現(xiàn)"You are attempting to build on a 32-bit system"
binary中會出現(xiàn)build/core/binary.mk:324: 目標(biāo)“out/target/product/generic/obj/STATIC_LIBRARIES/libc_common_intermediates/arch-arm/syscalls/eventfd.o”在同一個規(guī)則中給出了多次。等等。。。
搞的老郁悶了
所以最后還是下了-b cupcake版本。
在此過程中需要輸入名字和email地址。初始化成功后,會顯示:
repo initialized in /android
在~/android下會有一個.repo的隱藏目錄。
5, 同步源代碼
$repo sync
這一步要很久很久,我網(wǎng)速很不好,下了一天一夜。
6, 編譯android源碼,并得到~/android/out目錄
$cd ~/andoird
$make
這一過程很久
在make時可能出現(xiàn)的錯誤:
error: ‘fprintf’ was not declared in this scope
。。。。
因為ubuntu10.04中自帶到都是gcc4.4,g++4.4,所以要重新下載gcc4.3,g++4.3.
$sudo apt-get install gcc-4.3 g++-4.3
$cd /usr/bin
$sudo rm gcc
$sudo ln -s gcc-4.3 gcc
$sudo rm g++
$sudo ln -s g++-4.3 g++
$cd ~/android
$make
7,make成功后,運行
在模擬器上運行編譯好的android
編譯好android之后,emulator在~/android/out/host/linux-x86/bin 下,ramdisk.img,system.img和userdata.img則在~/android/out/target/product /generic下
$ cd ~/android/out/host/linux-x86/bin
增加環(huán)境變量
$vim ~/.bashrc
在.bashrc中新增環(huán)境變量,如下
#java 程序開發(fā)/運行的一些環(huán)境變量
export ANDROID_PRODUCT_OUT=~/android/out/target/product/generic
ANDROID_PRODUCT_OUT_BIN=~/android/out/host/linux-x86/bin
export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT};
最后,同步這些變化:
$source ~/.bashrc
$cd ~/android/out/target/product/generic
$emulator -system system.img -data userdata.img -ramdisk ramdisk.img
最后進入android桌面,就說明成功了。
8,編譯sdk
$make PRODUCT-sdk-sdk
用make sdk編譯可能會出現(xiàn)以下錯誤:
就是用eclipse新建android工程是會出現(xiàn)
Unable to get buffer of resource asset file
。。。
等等錯誤。
編譯后生成的SDK存放在out/host/linux-x86/sdk/,此目錄下有android-sdk_eng.xxx_linux- x86.zip和android-sdk_eng.xxx_linux-x86目錄。android-sdk_eng.xxx_linux-x86就是 SDK目錄
9,安裝adt
下載eclipcse,如果不使用jee版本eclipse,在編譯ADT時會出現(xiàn)如下錯誤
需要下載開發(fā)完全版eclipse, 在ubuntu 10.04上直接apt-get install eclipse安裝的為簡化版
可以這樣操作:
1. sudo apt-get install eclipse
2. 下載jee版本的eclipse
http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/helios/SR1/eclipse-jee- helios-SR1-linux-gtk.tar.gz
3. sudo rm -rf /usr/lib/eclipse/
4,解壓
5,sudo mv eclipse /usr/lib
6,配置環(huán)境變量
vim ~/.bashrc
在最后添加:
ECLIPSE_HOME=/usr/lib/eclipse
export ECLIPSE_HOME;
export PATH=${PATH}:${ECLIPSE_HOME}
如果沒有添加會出現(xiàn)以下錯誤:
Installation Error: Eclipse plugin org.eclipse.equinox.launcher...jar not detected. Found ''. Aborting.
8,在用戶目錄下建立一個adt文件夾
7,development/tools/eclipse/scripts/build_server.sh ~/adt
如果沒有下載完全版的eclipse就會出現(xiàn)以下錯誤:
BUILD FAILED
/usr/lib/eclipse/plugins/org.eclipse.pde.build_3.6.0.v20100603/scripts/build.xml:35: The following error occurred while executing this line:
/usr/lib/eclipse/plugins/org.eclipse.pde.build_3.6.0.v20100603/scripts/build.xml:91: The following error occurred while executing this line:
/home/luther.gliethttp/sdk/eclipse/buildConfig/customTargets.xml:14: The following error occurred while executing this line:
/home/luther.gliethttp/sdk/eclipse/buildConfig/allElements.xml:27: The following error occurred while executing this line:
/usr/lib/eclipse/plugins/org.eclipse.pde.build_3.6.0.v20100603/scripts/genericTargets.xml:107: A cycle was detected when generating the classpath com.android.ide.eclipse.adt_0.9.8.v201009041615, org.eclipse.jdt_3.6.0.v201006080911, org.eclipse.ui.intro_3.4.0.v20100427, org.eclipse.help.base_3.5.0.v201006080911, org.eclipse.equinox.http.jetty_2.0.0.v20100503, org.mortbay.jetty.util_6.1.23.v201004211559, org.slf4j.api_1.5.11.v20100519-1910, ch.qos.logback.classic_0.9.19.v20100519-1505, ch.qos.logback.core_0.9.19.v20100419-1216, org.slf4j.api_1.5.11.v20100519-1910.
BUILD FAILED
/usr/lib/eclipse/plugins/org.eclipse.pde.build_3.5.2.R35x_20100114/scripts/build.xml:35: The following error occurred while executing this line:
/usr/lib/eclipse/plugins/org.eclipse.pde.build_3.5.2.R35x_20100114/scripts/build.xml:91: The following error occurred while executing this line:
/home/luther.gliethttp/sdk/eclipse/buildConfig/customTargets.xml:14: The following error occurred while executing this line:
/home/luther.gliethttp/sdk/eclipse/buildConfig/allElements.xml:27: The following error occurred while executing this line:
/usr/lib/eclipse/plugins/org.eclipse.pde.build_3.5.2.R35x_20100114/scripts/genericTargets.xml:106: Bundle com.android.ide.eclipse.adt_0.0.0 failed to resolve.:
Missing required plug-in org.eclipse.gef_0.0.0.
Missing required plug-in org.eclipse.wst.sse.core_0.0.0.
Missing required plug-in org.eclipse.wst.sse.ui_0.0.0.
Missing required plug-in org.eclipse.wst.xml.core_0.0.0.
Missing required plug-in org.eclipse.wst.xml.ui_0.0.0.
10,安裝adt
打開eclipse
1,Help->Install New Software->Add.. -> archive...
添加編譯好~/adt下的android-eclipse-v201012222013.zip文件
2,安裝。
11,安裝sdk
1,打開eclipes,
2,菜單欄選擇window->Preferences->Android->SDK Location->
添加編譯好文件夾
/home/maxwell/android/out/host/linux-x86/sdk/android-sdk_eng.maxwell_linux-x86
3,配置環(huán)境變量
把第7步配置的環(huán)境變量去掉,添加以下變量
export PATH=${PATH}:~/android/out/host/linux-x86/sdk/android-sdk_eng.maxwell_linux-x86/tools
最后我的環(huán)境變量是:
JAVA_HOME=/usr/lib/jvm/java-6-sun
JRE_HOME=${JAVA_HOME}/jre
export ANDROID_JAVA_HOME=$JAVA_HOME
export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export JAVA_HOME;
export JRE_HOME;
export CLASSPATH;
HOME_BIN=~/bin
export PATH=${PATH}:${JAVA_PATH}:${HOME_BIN};
#NDK=~/android-ndk-r4b
#export NDK
#java 程序開發(fā)/運行的一些環(huán)境變量
ECLIPSE_HOME=/usr/lib/eclipse
export ECLIPSE_HOME;
export PATH=${PATH}:${ECLIPSE_HOME}
#export ANDROID_PRODUCT_OUT=~/android/out/target/product/generic
#ANDROID_PRODUCT_OUT_BIN=~/android/out/host/linux-x86/bin
#export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT}:${ECLIPSE_HOME}
export PATH=${PATH}:~/android/out/host/linux-x86/sdk/android-sdk_eng.maxwell_linux-x86/tools;
12,可以用eclipes來helloworld了
13,run時出現(xiàn)以下錯誤
Failed to find an AVD compatible with target 'Android 1.5'. Launch aborted.
提示沒有安裝avd
14,安裝avd
創(chuàng)建avd用的工具是android
android
出現(xiàn)問題:
Error: Error parsing the sdk.
Error: /home/maxwell/android/out/host/linux-x86/platforms is missing.
Error: Unable to parse SDK content.
解決:
在out/host/linux-x86/sdk/android-sdk_eng.lawrencekang_linux-x86/tools目錄下 ./android 則可以
原來在out/host/linux-x86/sdk/android-sdk_eng.lawrencekang_linux-x86/下面有 platforms目錄,可見android會查找
上一級目錄下的platforms目錄
將platforms 和add-ons copy到 out/host/linux-x86下面
然后運行 android就可以了
創(chuàng)建的avd放在 ~/.android/avd下面
編譯出來的SDK是沒有AVD(Android Virtual Device)的,我們可以通過android工具查看:
$ android list
$ android create avd -t 1 -n myavd
可以android –help來查看上面命令選項的用法。創(chuàng)建中有一些選項,默認(rèn)就行了
再執(zhí)行android list,可以看到AVD存放的位置
以后每次運行emulator都要加-avd myavd或@myavd選項:
$ emulator -avd myavd
15,eclipes中run 成功。
16,結(jié)束辛苦的旅程。
聯(lián)系客服