Ошибка отправки SDCard эмулятора Android: файловая система только для чтения - PullRequest
67 голосов
/ 18 января 2010

Я занимаюсь разработкой под Android 1.6 (Android SDK 2.1). Я создаю AVD с помощью AVD Manager в Eclipse. Когда я запустил этот avd, я обнаружил, что директория / sdcard разрешена как "d ---------". Поэтому я не могу отправить файл на SD-карту.

Кто-нибудь знает, как решить эту проблему?

Ответы [ 20 ]

129 голосов
/ 07 октября 2013

Я нашел это произведение

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

48 голосов
/ 21 июля 2010

После того, как вы запустили эмулятор из одной оболочки, войдите в другую оболочку и введите

adb shell

Вы должны увидеть # prompt, это оболочка вашего устройства (эмулятора). Теперь введите следующую команду в оболочке adb.

mount -o remount rw /sdcard

Это теперь перемонтирует /sdcard с разрешением rw(read-write), и теперь вы можете вставить ваши файлы в /sdcard, используя следующую команду из вашей оболочки хоста.

`adb push filename.mp3 /sdcard,`

где filename.mp3 может быть любым файлом, который вы хотите вставить в эмулятор Android.

Надеюсь, это поможет:)

19 голосов
/ 09 октября 2012

Убедитесь, что в утилите AVD manager для эмулятора есть две вещи:

  1. Размер карты SD указан, например. 512.

  2. В теге Hardware нажмите New и выберите «SD Card Support» из выпадающего меню.

Теперь запустите эмулятор. SD-карта теперь также поддерживает запись.

10 голосов
/ 31 октября 2014

Android-студия версии 0.8.9 и выше имеет ошибку при создании AVD.

См. Выпуск 78434 .

Обход

  • перейдите в папку ADV в папке .android и найдите свой AVD config.ini
  • откройте его с помощью текстового редактора, который может обрабатывать переводы Unix. (Блокнот будет запускать строки вместе, так как у них нет CR-LF.)
  • изменить hw.sdCard=no на hw.sdCard=yes

это должно работать для всех в новых сборках

7 голосов
/ 14 марта 2010

Возможно, это звучит глупо, но у меня сработало, когда у меня возникла такая же проблема: удалите созданный avd и создайте его снова через AVD Manager с SD-картой, например, 512 МБ.

Убедитесь, что оба имеют правильные разрешения, и если нет, попробуйте изменить их с помощью chmod.

И если все по-прежнему не удается, повторите процесс, но вручную создавайте карты avd и sd через терминал:

android create avd -n my_avd -t 7
mksdcard -l e 512M mysdcard.img
emulator -avd my_avd -sdcard mysdcard.img

Надеюсь, это поможет!

6 голосов
/ 28 июля 2013

Я думаю, что проблема в том, что вы забыли установить размер SD-карты

Выполните следующие действия, чтобы заставить его работать:

  1. step1: закрыть запущенный эмулятор
  2. step2: открыть диспетчер виртуальных устройств Android (строка меню затмения)
  3. шаг3: выберите эмулятор -> Редактировать -> затем установите размер SD-карты

Это хорошо работает в моем эмуляторе!

4 голосов
/ 10 июля 2011

Убедитесь, что вы указали значение, которое больше нуля для Размер SD-карты в окне Создать AVD для этого конкретного эмулятора.

3 голосов
/ 21 октября 2011

mount -o remount, rw / sdcard

это правильный способ перемонтировать sdcard с помощью вашего эмулятора.

2 голосов
/ 29 октября 2014

Я попробовал @ user2002993 отличную помощь, но это одно место, где нужно немного отредактировать, поэтому я отредактировал и вот что сработало для меня на Android Studio, эмуляторе android 5.

Перейдите в папку adb правой кнопкой мыши в пустой области и выберите « открыть окно команд здесь » или, если вы установили adb с помощью adb-installer, откройте 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 голосов
/ 22 июля 2013

Я увеличил виртуальную память SDCard до 512 МБ для эмулятора, и этого было достаточно

...