Android 2.2源码编译需注意几个问题是本文要介绍的内容,主要是来里了解并学习Android 2.2的源码编译的内容,具体关于Android 2.2的内容来看本文详解。
Android 2.2的编译,从源码直接make就ok。需要jdk6!这个编译所需时间因机器配置不同而不同。我这次全部编译大概用了两个小时。编译产生的文件在你源码目录/out/下面
编译完了后编译sdk,
- cd ~/android/src
- . build/envsetup.sh
- lunch sdk-eng
- make sdk
这里需要注意的是:Android 2.2编译sdk当中有个编译doc的部分需要用jdk5!网上有介绍很多办法,我采用了直接注释(即略过doc的编译的办法)。这样就免去了将开发环境中的jdk的版本换来换去的。具体做法是:注释文件 build\core\droiddoc.mk 中的ALL_DOCS += $(full_target)这一行即可(这一行前面加#即可)。
关于这一点,可以这样,在编译源码时用jdk5.0,编译sdk时用jdk6.0,但是仍然要注释文件 build\core\droiddoc.mk 中的ALL_DOCS += $(full_target)这一行。关于用两个版本的jdk我是这样的做的:去sun官网将jdk1.5和1.6的安装包都下载回来,都安装,在/etc/profile中指定JDK_HOME JRE_HOME等环境变量,要切换版本时,就在这边的环境变量中写上对应版本的路进即可,然后source profile,然后java -version查看版本,有时可能要重启才会生效)如图
Android 2.2的sdk编译OK后,在1的ou/host/linux-x86目录下面会有sdk目录生成。里面所产生的内容和网上下载到的sdk基本类似,如图:(单击放大)
安装Eclipse的ADT插件。针对android 2.2的sdk至少需要0.96的ADT。你现在编译的是Android 2.2的sdk,千万不要用现在官方已经升级的8.0的adt,那样会出现在在eclipse中认不到模拟器。(2010/12/10更新)而且在安装ADT插件时,jdk需要jdk...6_21(我同事那个是6_15就报了空指针异常了,如果你重新装完了jdk,注意更新java_home等环境变量)。
此时,新建的Android 2.2的工程,编译会出错。Unableto get buffer of resource assetfile。就是类似前面的这样的错误。。。解决办法网上也有很多。我采用了比较直接的:通过覆盖android.jar包中的resource.arsc。这个resource.arsc文件可到win下面的sdk的android.jar中复制一个过来,然后直接粘贴到编译出来的android.jar中。
解决办法是将build sdk时候的product该为sdk,有两种方法:
1、使用lunch更改配置:
- cd ~/android/src
- . build/envsetup.sh
- lunch sdk-eng
- make sdk
小结:Android 2.2源码编译需注意几个问题的内容介绍完了,希望通过Android 2.2的源码编译内容的学习能对你有所帮助!