简体   繁体   English

Android模拟器不会安装SD卡

[英]Android emulator won't mount SD card

I'm running a virtual machine in Android Studio. 我在Android Studio中运行虚拟机。 The problem is that it is never mounting the SD card. 问题是它永远不会安装SD卡。 In the settings, I've tried studio-managed (100MB) as well as creating one by myself: 在设置中,我尝试过工作室管理(100MB)以及自己创建一个:

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

The file is in my home folder with R/W rights. 该文件位于我的主文件夹中,具有R / W权限。

This is my configuration: 这是我的配置:

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

As you can see, hw.sdCard is set to YES . 如您所见, hw.sdCard设置为YES

Honestly I don't know what to look for in Logcat. 老实说,我不知道在Logcat中寻找什么。 Filtering MOUNT I saw this: 过滤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

I've also tried running this in the command line: 我也试过在命令行中运行它:

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

But I don't see any error. 但我没有看到任何错误。 The SD card just won't mount. SD卡无法安装。

This seems to be an issue with the recent emulator version, possibly in relation with older Android versions (Jelly Bean, etc.). 这似乎是最近的模拟器版本的问题,可能与较旧的Android版本(Jelly Bean等)有关。

Downgrading the SDK tools to a previous version solves the issue. 将SDK工具降级到以前的版本可以解决问题。

It works for example with r25.2.5, which you can download for Windows , Linux , or Mac OS X . 它适用于r25.2.5,您可以下载WindowsLinuxMac OS X. If you store the tools outside of the original SDK directory you may need to set the ANDROID_SDK_ROOT environment variable. 如果将工具存储在原始SDK目录之外,则可能需要设置ANDROID_SDK_ROOT环境变量。

Then use the emulator executable shipped with this package to start your AVD: 然后使用此程序包附带的模拟器可执行文件启动AVD:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM