I'm running a virtual machine in Android Studio. The problem is that it is never mounting the SD card. In the settings, I've tried studio-managed (100MB) as well as creating one by myself:
$ ./mksdcard -l sdCard 100M sdcard.img
The file is in my home folder with R/W rights.
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
.
Honestly I don't know what to look for in Logcat. Filtering MOUNT I saw this:
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.
Mounting an SD card should be as simple as inserting it into your Android device, then following the prompt to “Mount” it. Some more modern smartphones automatically mount your SD card without asking, while on others you may need to go to “Settings -> Storage -> SD card” and follow the prompt to mount it from there.
This seems to be an issue with the recent emulator version, possibly in relation with older Android versions (Jelly Bean, etc.).
Downgrading the SDK tools to a previous version solves the issue.
It works for example with r25.2.5, which you can download for Windows, Linux, or Mac OS X.
If you store the tools outside of the original SDK directory you may need to set the ANDROID_SDK_ROOT
environment variable.
Then use the emulator executable shipped with this package to start your AVD:
$ ./emulator -avd CASIO_API_17 -sdcard /home/mariano/sdcard.img
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With