ubuntu10.04下編譯android1.6_donut

 

雖然官網有說明,可是自己自己編譯還是會遇到很多問題,這是我自己動手實踐的流程,一來寫在這兒備忘,二來對別人也有幫助。

 

1 添加源

後面要安裝jdk5,可是ubuntu10.04默認是沒有jdk5的源的,需要添加合適的源

$sudo gedit /etc/apt/sources.list

添加以下代碼:

deb http://run.hit.edu.cn/ubuntu/ jaunty main restricted universe multiverse  

deb-src http://run.hit.edu.cn/ubuntu/ jaunty main restricted universe multiverse  

deb http://run.hit.edu.cn/ubuntu/ jaunty-updates main restricted universe multiverse  

deb-src http://run.hit.edu.cn/ubuntu/ jaunty-updates main restricted universe multiverse  

deb http://run.hit.edu.cn/ubuntu/ jaunty-backports main restricted universe multiverse  

deb-src http://run.hit.edu.cn/ubuntu/ jaunty-backports main restricted universe multiverse  

deb http://run.hit.edu.cn/ubuntu/ jaunty-security main restricted universe multiverse  

deb-src http://run.hit.edu.cn/ubuntu/ jaunty-security main restricted universe multiverse  

 

讓改動生效,需要運行

$apt-get update

 

 

2 開始安裝工具

$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

 

老版本的ubuntu好像要安裝lib32readline5-dev,我的10.04不需要。

 

 

3 將gcc和g++替換成合適的版本

現有的編譯器版本太高,語法檢查太嚴格,你可能遇到如下的錯誤:

development/emulator/qtools/trace_reader.cpp: In function ‘char* ExtractDexPathFromMmap(const char*)’:

development/emulator/qtools/trace_reader.cpp:1012: error: invalid conversion from ‘const char*’ to ‘char*’

development/emulator/qtools/trace_reader.cpp:1015: error: invalid conversion from ‘const char*’ to ‘char*’

make: *** [out/host/linux-x86/obj/EXECUTABLES/bb2sym_intermediates/trace_reader.o] 錯誤 1

 

解決辦法就是使用gcc-4.3和g++-4.3

高版本的編譯器不用卸載,後面我們通過建立鏈接,指定使用某個版本的編譯器

$sudo apt-get install gcc-4.3

$sudo apt-get install g++-4.3

 

 

4 給編譯器建立軟鏈接

你可能會在編譯的時候遇到找不到如下錯誤:

undefined command gcc

undefined command cc

原因是編譯腳本想使用gcc和cc,可是我們的編譯器不叫這個名字,而是叫gcc-XXX或者g++-XXX

解決辦法是:

$cd usr/bin

$sudo ln -s gcc-4.3 gcc

$sudo ln -s gcc-4.3 cc

 

 

5 安裝代碼下載工具repo

5.1 make sure you have a bin dir in your home dir

$ cd ~

$ mkdir bin

5.2 put ~/bin to PATH env var

$ sudo gedit .bashrc

append "PATH=$PATH:~/bin" in the end 

    restart terminal

echo $PATH

make sure ~/bin is in PATH

5.3 Download the reposcript and make sure it is executable: 

$ curl http://android.git.kernel.org/repo >~/bin/repo

permission denied.

$ chmod 777 bin

$ curl http://android.git.kernel.org/repo >~/bin/repo

$ chmod a+x ~/bin/repo

 

6 Initializing a Repo client 

Create an empty directory to hold your working files: 

$ mkdir mydroid 

$ cd mydroid 

Run "repo init" to bring down the latest version of Repo with all its most recent bug fixes. You must specify a URL for the manifest: 

$ repo init -u git://android.git.kernel.org/platform/manifest.git

If you would like to check out a branch other than "master", specify it with -b, like: 

$ repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake 

i need donut

so i input:

repo init -u git://android.git.kernel.org/platform/manifest.git -b donut

When prompted, configure Repo with your real name and email address. If you plan to submit code, use an email address that is associated with a Google account . i used name: mayqlzu, email: [email protected]

 

7 Getting the files

To pull down files to your working directory from the repositories as specified in the default manifest, run 

$ repo sync 

download start, it takes a long time. have a good night.

 

 

8 添加環境變量

$sudo gedit ~/.bashrc

添加以下代碼:

export JAVA_HOME=/usr/lib/jvm/java-5-sun  

export PATH=$PATH:$JAVA_HOME/bin  

export CLASSPATH=$JAVA_HOME/lib

export ANDROID_JAVA_HOME=$JAVA_HOME  

export PATH=$PATH:~/mydroid/out/host/linux-x86/bin  

export ANDROID_PRODUCT_OUT=~/mydroid/out/target/product/generic

重啓終端,讓環境變量生效

 

 

9 編譯

$cd ~/mydroid

$make

 

應該不會有問題。

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章