可能是我的网络环境问题,在同步Android源码的时候总是挂死,所以我想是不是能够先下个单个的工程下来,编译一下试试。用git clone命令下了git clone git://android.git.kernel.org/plagform/packages/apps/Email,然后在网上找了些编译单个工程的方法,用mm命令或者mmm命令什么的,先要运行. build/envsetup.sh,但是我的一运行就报错bash:build/envsetup.sh:no such file or directory,我不知道是什么原因。难道是Android源代码没有同步完build/envsetup.sh这个目录就还没有存在吗?若是的话希望大侠能给出一个不用同步完Android源代码只需下载某个包就能编译的方法,小弟在此先谢过了。

解决方案 »

  1.   

    整个的源码一定要有,但是系统的整个包下不下来的话 你可以建一个和那个包名相同的文件夹,然后把你单个程序放进去编译,你的命令要cd到你的源码下啊. build/envsetup.sh
      

  2.   

    android模块编译,mm命令, 模块编译 .转
    from http://jinguo.javaeye.com/blog/691507   如果你只修改某一个模块的内容,却每次都要执行make, 最后等待很长时间。
    使用模块编译,只需要在你所在的模块的目录或者其子目录,执行mm,便可以编译出一个单独的apk,这样岂不快哉!
    具体步骤:
            1)打开~/.baserc文件,加入source ~/I850/build/envsetup.sh. 加入你自己该文件所在的路径,这样就免去了每次启动新的终端执行mm命令之前,需要引用此文件。
            2)完成步骤1之后,就可以在你的模块里面随意执行mm了,要想使用其他快速命令,可以查看envsetup.sh文件,比如 cgrep,jgrep,resgrep在不同类型的文件里面进行相应的查询。还有m,mmm等等以上是一个帖子的部分内容,对其第一步我还是没理解,那个envsetup.sh文件在哪儿呢,我咋找不见。对于三楼的回复非常感谢,能留个方式联系下吗,我还是想具体问一下。
      

  3.   

    envsetup.sh这个只是个命令的脚本,在你的源码包/build/envsetup.sh/
    你找找看 不过第一步是打开的是.baserc文件啊,看看在你的电脑的路径
      

  4.   

    make + 模块名 即可比如
    make liblogmake libandroid_runtime
      

  5.   

    如何单独build android ap (以launcher为例)单独build launcher.
    $cd <ANDROID>
    $export TOP='pwd'
    $source build/envsetup.sh
    $cd packages/apps/Launcher
    $mm将build出来的launcher.apk push到SDK当中
    $adb push out/..../system/app/Launcher.apk /system/app
    $adb shell stop zygote
    $adb shell start zygote 
    这是今天看到的一篇文章 记录下来
      

  6.   

    要编译的话,android的全代码一般是要有的,很多android的模块对frameworks的代码有依赖,所以要全编译通过后,才能单独在单个模块下mm
      

  7.   

    $export TOP='pwd'这个是做什么,导入top变量有何意义每次push完了,从未执行过这两个命令,没觉得有什么问题
    $adb shell stop zygote
    $adb shell start zygote