2017-08-14 2 views
13

Ich verwende eine virtuelle Maschine in Android Studio. Das Problem ist, dass es niemals die SD-Karte einbaut. In den Einstellungen habe ich von mir als die Schaffung einer wie auch Studio-Managed (100MB) versucht:Android-Emulator kann keine SD-Karte installieren

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

Die Datei in meinem Home-Ordner mit R/W Rechte.

Dies ist meine Konfiguration:

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 

Wie Sie sehen können, hw.sdCard-YES gesetzt.

Ehrlich gesagt weiß ich nicht, in Logcat zu suchen. Filtering MOUNT Ich sah dies:

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 

Ich habe auch versucht, dies in der Befehlszeile ausgeführt wird:

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

Aber ich sehe keinen Fehler. Die SD-Karte wird nicht geladen.

+0

Sie zunächst das schreiben sollte hinzufügen, externe permision –

+0

ändern Bildträgerbezeichnung von sdcard etwas anderes. –

+0

> Sie sollten zuerst die externe Erlaubnis schreiben schreiben Um was? > Bild-Datenträger-Label von SD-Karte etwas anderes ändern. Welches Bildvolumen? –

Antwort

5

Dies scheint ein Problem mit der aktuellen Emulator-Version, möglicherweise in Bezug auf ältere Android-Versionen (Jelly Bean, etc.).

Das Herunterstufen der SDK-Tools auf eine frühere Version behebt das Problem.

Es funktioniert zum Beispiel mit r25.2.5, die Sie für Windows, Linux oder Mac OS X herunterladen können. Wenn Sie die Tools außerhalb des ursprünglichen SDK-Verzeichnisses speichern, müssen Sie möglicherweise die Umgebungsvariable ANDROID_SDK_ROOT festlegen.

Verwenden Sie dann die ausführbare Emulator mit diesem Paket versendet Ihre AVD zu starten:

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

Das hat das Problem für mich gelöst. Extrahiere das heruntergeladene 25.2.5 Tools-Archiv für dein System oben in dein SDK-Verzeichnis - ich lege mein unter 'C: \ Android \ sdk \ tools-25.2.5 \' ab. Sie müssen sich nicht mit irgendwelchen Umgebungsvariablen anlegen, starten Sie den Emulator einfach über die Kommandozeile. Wenn Ihre 'config.ini' für den Emulator korrekt eingerichtet ist, sollten Sie keine anderen Optionen als' -avd AVD_NAME' angeben müssen. Hoffentlich bekommen sie bald die aktuelle Emulator-Version behoben. – InsanityOnABun

+0

Diese Antwort ist sehr nützlich, auch der Kommentar von @InsanityOnABun ist sehr nützlich und funktioniert ohne negative Auswirkungen. –

Verwandte Themen