2017-08-14 140 views
13

我在Android Studio中运行虚拟机。问题是它从未安装SD卡。 在设置中,我已经试过工作室管理(100MB)以及建立一个由自己:Android模拟器不会安装SD卡

$ ./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卡不会安装。

+0

你应该先添加写信SD卡别的外部permision –

+0

变化图像卷标。 –

+0

>您应该首先添加写入外部许可 要什么? >从SD卡更改图像卷标签别的东西。 什么图像体积? –

回答

5

这似乎是近期模拟器版本的一个问题,可能与较旧的Android版本(Jelly Bean等)有关。

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

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

然后用本包装运到启动AVD模拟器可执行文件:

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

这解决了我的问题。将下载的25.2.5工具归档文件解压缩到您的sdk目录 - 我将它放在'C:\ Android \ sdk \ tools-25.2.5 \'下。不需要混淆任何环境变量,只需通过命令行启动模拟器即可。如果您的模拟器的'config.ini'设置正确,则不需要提供除“-avd AVD_NAME”之外的任何选项。希望他们能很快获得当前的模拟器版本。 – InsanityOnABun

+0

这个答案非常有用,@InsanityOnABun的评论也非常有用,并且没有任何负面影响。 –