Android SD卡

4
我正在尝试运行Android模拟器,但无法识别SD卡。我已按照常规步骤进行设置 - 确认我的应用在清单中具有WRITE_EXTERNAL_STORAGE权限,确保我的avd启用了SD卡支持(hw.sdCard = yes),并在AVD设置中指定了SD卡。运行应用程序时,它无法创建任何新文件或目录,并且当我调用Environment.getExternalStorageState()检查是否安装了SD卡时,它总是返回"removed"。我运行其他已知好的项目以查看是否出现相同错误,并已让其他人尝试运行代码以查看是否可以正常工作。所有其他项目都有相同的问题,而其他运行代码的人已经使其正常工作。我正在Retina Macbook Pro上运行OS X 10.8.2,Eclipse Juno版本,并使用Android SDK预览版本21rc4。是否有人知道我可能做错了什么?附加说明:以下是涉及avd的config.ini文件的文本:
hw.sdCard=yes
hw.lcd.density=240
sdcard.size=1024M
skin.name=WVGA800
skin.path=platforms/android-16/skins/WVGA800
hw.cpu.arch=arm
abi.type=armeabi-v7a
hw.cpu.model=cortex-a8
vm.heapSize=48
hw.ramSize=512
image.sysdir.1=system-images/android-16/armeabi-v7a/

你能否发布你的avd的config.ini文件?它位于~/.android/avds/<avdname>.avd/config.ini。 - pschwamb
发布该文件的文本。 - Nicholas Blecha
在同一目录下,您应该有一个sdcard.img文件,它应该是1073741824字节。如果您在其上运行file命令:file ~/.android/avd/sdcardtest.avd/sdcard.img,您应该会得到类似于以下的输出:Users/pete/.android/avd/sdcardtest.avd/sdcard.img: x86 引导扇区,代码偏移量为0x5a,OEM-ID为“MSWIN4.1”,每簇扇区数为4,媒体描述符为0xf8,扇区数为2097152(卷> 32 MB),FAT(32位),每个FAT的扇区数为4088,保留3为0x800000,序列号为0x180b3619,标签:“SDCARD”。 - pschwamb
一切都匹配,除了序列号(显然)。 - Nicholas Blecha
你有检查logcat是否有与sdcard相关的内容吗? - pschwamb
09-25 17:55:31.963: D/MountService(371): 获取存储路径:/mnt/sdcard 描述:USB 存储 主要:true 可移动:false 模拟:false mtpReserve:0 允许大容量存储:false 最大文件大小:0 09-25 17:55:32.043: D/MountService(371): /mnt/sdcard 的卷状态已更改(null -> 已移除) - Nicholas Blecha
1个回答

1

请确保 sdcard.img 文件存在并且大小正确,并且您的登录帐户有写入权限。如果这样不起作用,您可以尝试使用以下命令重新创建它:

mksdcard 1024M sdcard.img

它确实存在,并且可写。 - Nicholas Blecha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接