私はAndroid 1.6(Android SDK 2.1)で開発しています。Eclipseでavdマネージャーを使用してavdを作成します。このavdを起動すると、/ sdcardディレクトリの許可が「d- --------」。だから私はSDカードにファイルをプッシュすることはできません。
誰もこの問題を解決する方法を知っていますか?
この作品を見つけました
$./adb Shell
$su
mount -o rw,remount rootfs /
chmod 777 /mnt/sdcard
exit
ソース: http://www.coderanch.com/t/611842/Android/Mobile/Android-emulator-sdcard-writable
あるシェルからエミュレーターを起動したら、別のシェルにログインして次のように入力します
_adb Shell
_
_# Prompt
_が表示されるはずです。これはデバイス(エミュレータ)シェルです。次に、adbシェルで次のコマンドを入力します。
_mount -o remount rw /sdcard
_
これで_/sdcard
_がrw(read-write)
権限で再マウントされ、ホストシェルから次のコマンドを使用してファイルを_/sdcard
_にプッシュできるようになりました。
_`adb Push filename.mp3 /sdcard,`
_
filename.mp3は、Android Emulator。にプッシュする任意のファイルです。
お役に立てれば :)
エミュレーターのAVDマネージャーユーティリティで2つのことを確認します。
SDカードのサイズが記載されています。 512。
ハードウェアタグから、[新規]を押して、ドロップダウンメニューから[SDカードサポート]を選択します。
次に、エミュレータを起動します。 SDカードは書き込みもサポートするようになりました。
Android Studioバージョン0.8.9以降には、AVDを作成するバグがあります。
Issue 78434 を参照してください。
回避策
hw.sdCard=no
からhw.sdCard=yes
これは、新しいビルドのすべての人に機能するはずです
ばかげているように聞こえるかもしれませんが、同じ問題が発生したときはうまくいきました。作成したavdを削除し、AVD Managerで、たとえば512MBのsdカードを使用して再度作成します。
両方に正しい権限があることを確認し、ない場合は、chmodを使用してそれらを変更してみてください。
それでもすべてが失敗する場合は、プロセスを繰り返しますが、ターミナルを使用してavdカードとsdカードの両方を手動で作成します。
Android create avd -n my_avd -t 7
mksdcard -l e 512M mysdcard.img
emulator -avd my_avd -sdcard mysdcard.img
お役に立てば幸いです!
ここでの問題は、あなたがSDカードのサイズを設定するのを忘れた
動作させるには、次の手順に従います。
これは私のエミュレータでうまくいきます!
その特定のAVDの作成ウィンドウでSDカードサイズに対して0より大きいの値を指定したことを確認してくださいエミュレータ。
mount -o remount、rw/sdcard
これは、エミュレータを使用してSDカードを再マウントする正しい方法です。
私は@ user2002993の大きな助けを試しましたが、少し編集する必要があるので、編集して、ここで私のために働いたものをAndroid Studio、エミュレータAndroid 5。
Adbフォルダーに移動し、空白領域を右クリックして「ここでコマンドウィンドウを開く」を選択するか、adb-installerでadbをインストールした場合はcmd
を開き、次のコマンドを入力します。
adb devices
エミュレータの番号と詳細が表示されます。次に、コマンドに従ってください:
adb Shell
これでプロンプト#が表示されるはずです。
su
mount -o rw,remount rootfs
chmod 777 /mnt/sdcard
exit
exit
二重出口が必要です。adbシェルのプロンプトが消えました。ファイルをadbフォルダーに入れてこのコマンドを実行し、修正されたかどうかを確認します。
adb Push "your file name like : 1.jpg" /sdcard/
または
adb Push "your file name like : 1.jpg" /storage/sdcard/
今cmdでそれは気味悪い読み取り専用のものの代わりに時間を転送することを示します????
Sdcardの仮想メモリをエミュレータ用に最大512 MBまで増やしましたが、それで十分でした
おそらく、avdの作成時にメモリサイズを挿入しなかったのでしょう。あなたはavdを編集することでそれを行うことができます。
Android L開発者プレビューでこの問題が発生しました。少なくともこのバージョンでは、サイズが2の正方形(128M、256Mなど)のsdcardを作成して解決しました。
これをターミナルエミュレータでルートとして試してください。
restorecon -v -R /data/media
それは間違いなく動作します
Adbバージョン1.0.32およびEclipse Luna(v 4.4.1)。
Avd/mnt/media_rw/sdcardにadbコマンドを使用して書き込み可能なディレクトリを見つけました。 adb Push {source}/mnt/media_rw/sdcard
このディレクトリへのrwアクセスがあるようです。
お役に立てれば :-)
正しい権限を持っていることを確認してください。
<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
これは非常に単純な理由の原因になることがあります。Eclipseのリストに移動して、SDCardサイズを設定したかどうかを確認してください。
Windowsはバックスラッシュを使用し、Linuxはスラッシュを使用します。
別の方法:ドライブを(設定/ストレージから)マウント解除し、SDカードを再マウントすると、問題も修正されます。 (ファイルを内部ストレージからsdcardに移動して確認します)いずれにせよ、この単純な方法は今回、私の尻を救いました:)
最後に私と一緒にエミュレータでアプリケーションマネージャを実行し、ストレージのアクセス許可を設定するのに役立ちました。