应该是权限的问题,你自己查查是否少了写SDCARD的权限。

解决方案 »

  1.   

    LZ的问题很简单,只要把你的tools目录路径,添加到系统环境变量path里面即可解决
      

  2.   

    难道也会有root权限的问题 
      

  3.   


    环境变量里添加了。
    并且sdcard.img在emulator启动的时候已经被lock了
    emulator启动的参数包括了,emulator:argv[12] = "/home/sdcard.img"
      

  4.   

    分析启动的log出现了如下错误:
    Freeing init memeory:104k
    mmc0:host doesn't support card's voltages
    mmc0:error -22 whilst initialing MMC card
    mmc1:new SD card at address e118
    mmcblk0:mmc1:e118 SU02G 256 Mib (我把sdcard卡的大小改为了2的倍数)而windows上启动的时候log信息如下:
    Freeing init memory: 104K
    mmc0: new SD card at address e118
    mmcblk0: mmc0:e118 SU02G 256 MiB
     mmcblk0:这段信息代表什么意思呢?是不是这里出了问题?
      

  5.   

    #adb shell
    #mount -t vfat /dev/block//vold/179:0 /sdcard执行完以上命令后,可以向sdcard中push数据了。
    但是 emulator->setting->sd card & phone storage
    中仍然显示unavailable。在状态栏中显示
    Removed SD card
    SD card removed.Insert a new one.
      

  6.   

    windows上正常启动情况:
    /sys/devices/platform下面只有一个goldfish_mmc.0
    Path:/sys/devices/platform/goldfish_mmc.0/mmc_host/mmc0/mmc0:e118而在linux上执行的时候,该目录下有两个:
    goldfish_mmc.0
    goldfish_mmc.1
    /sys/devices/platform/goldfish_mmc.0/mmc_host/mmc1/mmc1:e118结合9#的信息,是不是错误出在了这里呢?
      

  7.   

    结贴了,没有获得满意的答案。之前在网上看到有人也遇到过这个问题,需要修改vold的makefile文件(1.6版本),
    但是我在2.1上修改了不好用。我重新下载了一个2.2版本的源码,没有这个问题了。
    所以我推断可能是1.6~2.1之间的版本可能都有这个问题(推测而已,呵呵)。