【问题标题】:Android emulator won't mount SD cardAndroid模拟器不会挂载SD卡
【发布时间】:2017-08-14 18:59:02
【问题描述】:

我正在 Android Studio 中运行虚拟机。问题是它永远不会安装 SD 卡。 在设置中,我尝试过由工作室管理 (100MB) 以及自己创建一个:

$ ./mksdcard -l sdCard 100M sdcard.img

该文件位于我的主文件夹中,具有 R/W 权限。

这是我的配置:

avd.ini.encoding=UTF-8
AvdId=DEVICEC_API_17
PlayStore.enabled=false
abi.type=x86
avd.ini.displayname=DEVICEC API 17
disk.dataPartition.size=800M
hw.accelerometer=no
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.manufacturer=User
hw.device.name=DEVICEC
hw.gps=no
hw.gpu.enabled=yes
hw.gpu.mode=auto
hw.initialOrientation=landscape
hw.keyboard=yes
hw.lcd.density=160
hw.mainKeys=no
hw.ramSize=1536
hw.sdCard=yes
hw.sensors.orientation=no
hw.sensors.proximity=no
hw.trackBall=no
image.sysdir.1=system-images/android-17/google_apis/x86/
runtime.network.latency=none
runtime.network.speed=full
sdcard.path=/home/user/sdcard.img
showDeviceFrame=no
skin.dynamic=yes
skin.name=800x600
skin.path=_no_skin
skin.path.backup=_no_skin
tag.display=Google APIs
tag.id=google_apis
vm.heapSize=48

如您所见,hw.sdCard 设置为 YES

老实说,我不知道在 Logcat 中寻找什么。过滤 MOUNT 我看到了这个:

08-14 17:45:55.544 1495-1508/system_process I/SystemServer: Mount Service
08-14 17:45:55.544 1495-1508/system_process D/MountService: got storage path: /mnt/sdcard description: USB storage primary: true removable: false emulated: false mtpReserve: 0 allowMassStorage: false maxFileSize: 0
08-14 17:45:55.544 1495-1508/system_process D/MountService: addVolumeLocked() StorageVolume [mStorageId=0 mPath=/mnt/sdcard mDescriptionId=17040615 mPrimary=true mRemovable=false mEmulated=false mMtpReserveSpace=0 mAllowMassStorage=false mMaxFileSize=0 mOwner=null]
08-14 17:45:55.554 1495-1533/system_process D/MountService: volume state changed for /mnt/sdcard (null -> removed)
08-14 17:45:55.554 1495-1533/system_process W/MountService: getSecureContainerList() called when storage not mounted

我也试过在命令行中运行它:

$ ./emulator -avd CASIO_API_17 -sdcard /home/mariano/sdcard.img

但我没有看到任何错误。 SD 卡无法安装。

【问题讨论】:

  • 你应该先添加写外部权限
  • 从 sdCard 更改图像卷标。
  • >你应该首先添加写外部权限到什么? >从 sdCard 更改图像卷标。什么图像体积?

标签: android android-studio avd


【解决方案1】:

这似乎是最近的模拟器版本的问题,可能与较旧的 Android 版本(果冻豆等)有关。

将 SDK 工具降级到以前的版本即可解决此问题。

它适用于例如 r25.2.5,您可以下载 WindowsLinuxMac OS X。 如果您将工具存储在原始 SDK 目录之外,则可能需要设置 ANDROID_SDK_ROOT 环境变量。

然后使用此软件包附带的仿真器可执行文件来启动您的 AVD:

$ ./emulator -avd CASIO_API_17 -sdcard /home/mariano/sdcard.img

【讨论】:

  • 这为我解决了这个问题。将上面为您的系统下载的 25.2.5 工具存档解压缩到您的 sdk 目录 - 我将我的放在 C:\Android\sdk\tools-25.2.5\ 下。不需要弄乱任何环境变量,只需通过命令行启动模拟器。如果模拟器的config.ini 设置正确,则不需要提供除-avd AVD_NAME 以外的任何选项。希望他们能尽快修复当前的模拟器版本。
  • 这个答案非常有用,@InsanityOnABun 的评论也非常有用,而且没有任何负面影响。
猜你喜欢
  • 1970-01-01
  • 2012-07-07
  • 1970-01-01
  • 2012-10-27
  • 2011-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多