Android编译大全(二)--编译源码

2.  编译源代码

v  执行 ls -la /bin/sh 命令,如果输出如下:

rwxrwxrwx 1 root root 4 2010-02-10 17:14 /bin/sh -> dash

请执行 $sudo dpkg-reconfigure dash 命令修改 sh 版本,并选择

此处如果不改好的话,编译时会出现错误。

 

v  执行 source build/envsetup.sh 命令

v  执行 choosecombo 命令,出现选择对话框

u  Build for the simulator or the device?

u        1. Device

u         2. Simulator

u   

u  Which would you like? [1]    

u    

u  Build type choices are:

u        1. release

u        2. debug

u   

u  Which would you like? [2]

u   

u  Product choices are:

u        1. core

u        2. full_dream

u        3. full

u        4. full_passion

u        5. full_sapphire

u        6. generic_dream

u        7. generic

u        8. generic_passion

u        9. generic_sapphire

u        10. msm7625_qrd

u        11. msm7627_ffa

u        12. msm7627_surf

u        13. msm7630_surf

u        14. qsd8250_ffa

u        15. qsd8250_surf

u        16. sample_addon

u        17. sdk

u        18. sim

u  You can also type the name of a product if you know it.

u  Which product would you like? [generic] 3

u   

u  Variant choices are:

u        1. user

u        2. userdebug

u        3. eng

u  Which would you like? [eng]

 

如果执行这个命令的时候,报错: /bin/sh: Syntax error: "(" unexpected

# 请执行 $sudo dpkg-reconfigure dash 命令,并选择

 

v  配置环境变量

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

export CLASSPATH=$JAVA_HOME/lib

export JRE_HOME=$JAVA_HOME/jre

export JAVA_PATH=$JAVA_HOME/bin:$JRE_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:

$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export ANDROID_JAVA_HOME=$JAVA_HOME

export PATH=$JAVA_PATH:$PATH

 

v  执行 make 命令

如果安装的是 java1.6 ,将报错,如下:

Your version is: java version "1.6.0_15".

The correct version is: 1.5.

 

解决 java 编译错误,如下:

1)     下载 jdk1.5 ftp://202.112.80.252/java/jdk-1_5_0_21-linux-i586.bin );

2)     jdk-1_5_0_21-linux-i586.bin 变为可执行权限

$sudo chmod a+x jdk-1_5_0_21-linux-i586.bin

3)     在命令行下执行 ./jdk-1_5_0_21-linux-i586.bin 安装 sdk

4)     建立一个软连接到 jdk 目录

$sudo ln jdk1.5.0_21/ java-5-sun -s

5)     然后配置环境变量: sudo gedit/etc/enviroment 在其中添加两行:

CLASSPATH=/usr/lib/jvm/java-5-sun/lib

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

 

如果在出现类似使用了旧版 api 的错误,请先按照提示执行 make update-api 命令。该命令执行结束之后,再继续执行 make 命令就可以编译成功了。

 

在配置好 shell 命令类型之后,也可以新建一个 shell 脚本如下,进行自动编译:

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

export CLASSPATH=$JAVA_HOME/lib

export JRE_HOME=$JAVA_HOME/jre

export JAVA_PATH=$JAVA_HOME/bin:$JRE_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export ANDROID_JAVA_HOME=$JAVA_HOME

export PATH=$JAVA_PATH:$PATH

source build/envsetup.sh

choosecombo 1 1 7 3

make

 

 

  build 之后的 log 如下:

… …

creating boot.img...

creating recovery.img...

creating system.img...

creating userdata.img...

cleaning up...

Done.

 

你可能感兴趣的:(Android编译大全(二)--编译源码)