Android2.2源码编译的几个注意点

 

  1. 编译,从源码直接makeok需要jdk6这个编译所需时间因机器配置不同而不同。我这次全部编译大概用了两个小时。编译产生的文件在你源码目录/out/下面

  2. 编译完了后编译sdk 

        cd ~/android/src
        . build/envsetup.sh
        lunch sdk-eng
        make sdk

这里需要注意的是:编译sdk当中有个编译doc的部分需要用jdk5!网上有介绍很多办法,我采用了直接注释(即略过doc的编译的办法)。这样就免去了将开发环境中的jdk的版本换来换去的。具体做法是:注释文件 build\core\droiddoc.mk 中的ALL_DOCS += $(full_target)这一行即可(这一行前面加#即可)。更详细的参见文章http://yueguc.javaeye.com/blog/805895。(2010/12/10更新,关于这一点,可以这样,在编译源码时用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查看版本,有时可能要重启才会生效

  1. sdk编译OK后,在1ou/host/linux-x86目录下面会有sdk目录生成。里面所产生的内容和网上下载到的sdk基本类似。


  2. 安装EclipseADT插件。针对android2.2sdk至少需要0.96ADT。你现在编译的是2.2的sdk,千万不要用现在官方已经升级的8.0的adt,那样会出现在在eclipse中认不到模拟器。(2010/12/10更新)而且在安装ADT插件时,jdk需要jdk...6_21(我同事那个是6_15报了空指针异常,如果你重新装完了jdk注意更新java_home等环境变量)。

  3. 此时,新建的2.2的工程,编译会出错。Unableto get buffer of resource assetfile。就是类似前面的这样的错误。。。解决办法网上也有很多。我采用了比较直接的:通过覆盖android.jar包中的resource.arsc。这个resource.arsc文件可到win下面的sdkandroid.jar中复制一个过来,然后直接粘贴到编译出来的android.jar中。关于这个问题的详细原因可参考http://blog.csdn.net/winner82/archive/2009/09/24/4589660.aspx

    解决办法是将build sdk时候的product该为sdk,有两种方法:

     1. 使用lunch更改配置:

        cd ~/android/src
        . build/envsetup.sh
        lunch sdk-eng
        make sdk


原文地址:https://www.cnblogs.com/simoncook/p/1875137.html