使用mmm dalvik命令出现下列错误
Dell:android Dell$ mmm dalvik/
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.0.4
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a
HOST_ARCH=x86
HOST_OS=darwin
HOST_BUILD_TYPE=release
BUILD_ID=IMM76I
============================================
…………
…………make: *** No rule to make target `out/target/product/generic/obj/lib/liblog.so', needed by `out/target/product/generic/obj/SHARED_LIBRARIES/libdvm_intermediates/LINKED/libdvm.so'.  Stop.上网找了很久,无解,求解答……
android

解决方案 »

  1.   

    你要先做full build才行。
    make -j4
      

  2.   

    如何做full build ?
    是设置TARGET_PRODUCT=full然后执行make -j4最后再执行 mmm dalvik吗?
      

  3.   

    $ source build/envsetup.sh
    $ lunch full-eng
    $ make -j4
      

  4.   


    不好意思忘了说了,我的环境是mac10.7.3+xcode4.3
      

  5.   

    U could refer below comments to setup ur build env on Mac OS.
    http://source.android.com/source/initializing.htmlSetting up a Mac OS X build environment
    In a default installation, OS X runs on a case-preserving but case-insensitive filesystem. This type of filesystem is not supported by git and will cause some git commands (such as "git status") to behave abnormally. Because of this, we recommend that you always work with the AOSP source files on a case-sensitive filesystem. This can be done fairly easily using a disk image, discussed below.Once the proper filesystem is available, building the master branch in a modern OS X environment is very straightforward. Earlier branches, including ICS, require some additional tools and SDKs.Creating a case-sensitive disk image
    You can create a case-sensitive filesystem within your existing OS X environment using a disk image. To create the image, launch Disk Utility and select "New Image". A size of 25GB is the minimum to complete the build, larger numbers are more future-proof. Using sparse images saves space while allowing to grow later as the need arises. Be sure to select "case sensitive, journaled" as the volume format.You can also create it from a shell with the following command:# hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/android.dmg
    This will create a .dmg (or possibly a .dmg.sparsefile) file which, once mounted, acts as a drive with the required formatting for Android development. For a disk image named "android.dmg" stored in your home directory, you can add the following to your ~/.bash_profile to mount the image when you execute "mountAndroid":# mount the android file image
    function mountAndroid { hdiutil attach ~/android.dmg -mountpoint /Volumes/android; }
    Once mounted, you'll do all your work in the "android" volume. You can eject it (unmount it) just like you would with an external drive.
      

  6.   

    make: *** No rule to make target `out/target/product/generic/obj/lib/liblog.so', needed by `out/target/product/generic/obj/SHARED_LIBRARIES/libdvm_intermediates/LINKED/libdvm.so'.  Stop.
    这出错信息很好理解啊。
    liblog.so被libdvm.so依赖;
    换句话说,就是你在编译生成libdvm.so的时候需要用到liblog.so。但问题是,你没有生成liblog.so!(或者找不到)因此需要首先full bulid,在这个过程中,会生成所有的中间文件;然后你在单个模块编译,就okl