2017-08-14 10 views
13

私はAndroidスタジオで仮想マシンを実行しています。問題は、それが決してSDカードをマウントしていないということです。設定で は、私はスタジオ管理(100メガバイト)を試しただけでなく、自分でものを作成しました: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.sdCardYESに設定されています。

正直私は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

>最初に書き込み外部パーミッションを追加する必要があります 何に? >イメージボリュームラベルをsdCardから別のものに変更します。 どの画像ボリュームですか? –

答えて

5

これは最近のエミュレータバージョンで、おそらく古いAndroidバージョン(Jelly Beanなど)との関連で問題があるようです。

SDKツールを以前のバージョンにダウングレードすると問題が解決します。

たとえば、r25.2.5で動作します。WindowsLinux、またはMac 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のコメントは非常に便利であり、悪影響なしに作業できます。 –

関連する問題