【问题标题】:Cannot use SD card in Android Emulator Device无法在 Android 模拟器设备中使用 SD 卡
【发布时间】:2026-01-02 08:15:01
【问题描述】:

我正在尝试使用默认的 android AVD 模拟器。它工作正常,但是我在使用外部存储/sdcard 时遇到了问题。

好像sdcard镜像根本没有挂载。

Environment.getExternalStorageState()
External: removed

这是我的配置

还有配置文件本身

avd.ini.encoding=UTF-8
AvdId=Nexus_4_API_16
PlayStore.enabled=false
abi.type=x86
avd.ini.displayname=Nexus 4 API 16
disk.dataPartition.size=800M
hw.accelerometer=yes
hw.audioInput=yes
hw.battery=yes
hw.camera.back=emulated
hw.camera.front=emulated
hw.cpu.arch=x86
hw.cpu.ncore=4
hw.dPad=no
hw.device.hash2=MD5:6930e145748b87e87d3f40cabd140a41
hw.device.manufacturer=Google
hw.device.name=Nexus 4
hw.gps=yes
hw.gpu.enabled=yes
hw.gpu.mode=auto
hw.initialOrientation=Portrait
hw.keyboard=yes
hw.lcd.density=320
hw.mainKeys=no
hw.ramSize=1536
hw.sdCard=yes
hw.sensors.orientation=yes
hw.sensors.proximity=yes
hw.trackBall=no
image.sysdir.1=system-images/android-16/google_apis/x86/
runtime.network.latency=none
runtime.network.speed=full
sdcard.size=1000M
showDeviceFrame=yes
skin.dynamic=yes
skin.name=nexus_4
skin.path=/Users/user/Library/Android/sdk/skins/nexus_4
tag.display=Google APIs
tag.id=google_apis
vm.heapSize=80

请帮助解决这个问题。我试图重新创建一个虚拟设备,但这并没有解决问题

更新

这也不好用

  ./emulator -avd Nexus_4_API_16 -sdcard ~/Temp/mainSdCard.img

【问题讨论】:

  • 配置文件清楚地表明它有 sd 卡。所以我认为问题出在你的代码上。
  • @Umair 问题不是我的代码,sd 卡甚至没有显示在设置中。
  • @bxfvgekd 你有什么可行的解决方案吗?我也有同样的问题。
  • @TruptiNasit,请看答案

标签: android android-emulator avd android-sdcard mount


【解决方案1】:

我发现的唯一一种解决方案就是测试不同的模拟器。 目前我正在使用Nexus 5x with Android 4.3,它工作正常。

另一个可能对某人有所帮助的解决方案是在您创建模拟器后,停止它并更改 Android Studio 默认生成的 sdcard 的大小。

我希望这会有所帮助。

【讨论】:

  • 更改 sdcard 的大小对我有帮助!有人知道为什么会这样吗?
  • 更改 sd 卡的大小对我有用,谢谢。我一直遇到 Android 4.4 (API 19) 图像的问题。我曾尝试将模拟器降级到 25 版,但这对我没有帮助。
【解决方案2】:

在运行较旧的 Android 版本(例如API 15-18。

https://issuetracker.google.com/issues/37138030

这发生在我使用 Android Studio 3.0.1 的模拟器 27.1.10-4607264(撰写时最新)上。我目前无法找到任何解决方法,也没有弄清楚如何让旧的模拟器版本运行。

使用 API 19 (Android 4.4) 或更新版本可以工作,但如果您想在较旧的 Android 版本上测试操作,显然不是一个很好的解决方案。

【讨论】: