web-dev-qa-db-ja.com

Android Emulator sdcard Push error:Read-only file system

私はAndroid 1.6(Android SDK 2.1)で開発しています。Eclipseでavdマネージャーを使用してavdを作成します。このavdを起動すると、/ sdcardディレクトリの許可が「d- --------」。だから私はSDカードにファイルをプッシュすることはできません。

誰もこの問題を解決する方法を知っていますか?

68
Leox

この作品を見つけました

$./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

129
user2002993

あるシェルからエミュレーターを起動したら、別のシェルにログインして次のように入力します

_adb Shell
_

_# Prompt_が表示されるはずです。これはデバイス(エミュレータ)シェルです。次に、adbシェルで次のコマンドを入力します。

_mount -o remount rw /sdcard
_

これで_/sdcard_がrw(read-write)権限で再マウントされ、ホストシェルから次のコマンドを使用してファイルを_/sdcard_にプッシュできるようになりました。

_`adb Push filename.mp3 /sdcard,`
_

filename.mp3は、Android Emulator。にプッシュする任意のファイルです。

お役に立てれば :)

48
ashutosh

エミュレーターのAVDマネージャーユーティリティで2つのことを確認します。

  1. SDカードのサイズが記載されています。 512。

  2. ハードウェアタグから、[新規]を押して、ドロップダウンメニューから[SDカードサポート]を選択します。

次に、エミュレータを起動します。 SDカードは書き込みもサポートするようになりました。

19
Sumit

Android Studioバージョン0.8.9以降には、AVDを作成するバグがあります。

Issue 78434 を参照してください。

回避策

  • .AndroidフォルダーのADVフォルダーに移動して、AVD config.iniを見つけます。
  • uNIXの改行を処理できるテキストエディタで開きます。 (メモ帳はCR-LFがないため、行を一緒に実行します。)
  • 変化する hw.sdCard=noからhw.sdCard=yes

これは、新しいビルドのすべての人に機能するはずです

10
afra mehrparvar

ばかげているように聞こえるかもしれませんが、同じ問題が発生したときはうまくいきました。作成した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

お役に立てば幸いです!

7
Edu Zamora

ここでの問題は、あなたがSDカードのサイズを設定するのを忘れた

動作させるには、次の手順に従います。

  1. ステップ1:実行中のエミュレーターを閉じる
  2. step2:open Android Virtual Device Manager(Eclipseメニューバー)
  3. ステップ3:エミュレータを選択->編集-> SDカードサイズを設定

これは私のエミュレータでうまくいきます!

6
tan

その特定のAVDの作成ウィンドウでSDカードサイズに対して0より大きいの値を指定したことを確認してくださいエミュレータ。

4
Dipin

mount -o remount、rw/sdcard

これは、エミュレータを使用してSDカードを再マウントする正しい方法です。

3
teddy

私は@ 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でそれは気味悪い読み取り専用のものの代わりに時間を転送することを示します????

2
afra mehrparvar

Sdcardの仮想メモリをエミュレータ用に最大512 MBまで増やしましたが、それで十分でした

2
user2604908

おそらく、avdの作成時にメモリサイズを挿入しなかったのでしょう。あなたはavdを編集することでそれを行うことができます。 screenshot

1
Suresh Sharma

Android L開発者プレビューでこの問題が発生しました。少なくともこのバージョンでは、サイズが2の正方形(128M、256Mなど)のsdcardを作成して解決しました。

0
Eli

これをターミナルエミュレータでルートとして試してください。

restorecon -v -R /data/media
0
intrepidis
  1. エミュレータでSDカードに任意のサイズを与える
  2. c:\ user ... Android\avd->プロパティから読み取り専用オプションのチェックを外しました
  3. エクスプローラーを介してファイルをプッシュする
  4. エミュレータを再起動します

それは間違いなく動作します

0

Adbバージョン1.0.32およびEclipse Luna(v 4.4.1)。

Avd/mnt/media_rw/sdcardにadbコマンドを使用して書き込み可能なディレクトリを見つけました。 adb Push {source}/mnt/media_rw/sdcard

このディレクトリへのrwアクセスがあるようです。

お役に立てれば :-)

0
gregrobinz

正しい権限を持っていることを確認してください。

<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" /> 
0
esse

これは非常に単純な理由の原因になることがあります。Eclipseのリストに移動して、SDCardサイズを設定したかどうかを確認してください。

0
user1347778

Windowsはバックスラッシュを使用し、Linuxはスラッシュを使用します。

0
nomapp

別の方法:ドライブを(設定/ストレージから)マウント解除し、SDカードを再マウントすると、問題も修正されます。 (ファイルを内部ストレージからsdcardに移動して確認します)いずれにせよ、この単純な方法は今回、私の尻を救いました:)

0
Raymond Fraikin

最後に私と一緒にエミュレータでアプリケーションマネージャを実行し、ストレージのアクセス許可を設定するのに役立ちました。

0
momik bęc