Ошибка отправки SDCard эмулятора Android: файловая система только для чтения

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

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

21 ответ

Я нашел это работает

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

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

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

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

  2. В теге "Оборудование" нажмите "Создать" и выберите "Поддержка SD-карт" в раскрывающемся меню.

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

В Android Studio версии 0.8.9 и выше есть ошибка создания AVD.

См. Выпуск 78434.

Временное решение

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

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

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

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

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

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

Возможно, это звучит глупо, но у меня сработало, когда у меня возникла такая же проблема: удалите созданный 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

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

Я попробовал @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 он должен показывать вам время передачи вместо жуткой вещи только для чтения

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

mount -o remount, rw /sdcard

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

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

Я думаю, вы не вставляли объем памяти во время создания AVD. Вы можете сделать это, отредактировав AVD. Скриншот

В версии ADB 1.0.32 и Eclipse Luna (v 4.4.1).

Я нашел каталог в avd /mnt/media_rw/sdcard, в который вы можете записать команду adb. adb push {source} /mnt/media_rw/sdcard

Похоже, что RW доступ к этому каталогу.

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

Иногда это может быть вызвано очень простой причиной, зайдите в свой список в Eclipse и проверьте, установлен ли у вас размер SDCard.

У меня была эта проблема при предварительном просмотре приложений для Android L, и, по крайней мере для этой версии, я решил ее, создав SD-карту размером с квадрат 2 (например, 128M, 256M и т. Д.)

Windows использует обратную косую черту, Linux использует прямую косую черту.

Альтернативный способ: демонтаж диска (из настроек / хранилища) и повторная установка SD-карты также решает проблему. (проверьте, переместив файл из внутреннего хранилища на SDCard). В любом случае, этот простой метод спас мой зад на этот раз:)

В последнем AVD просто вытащите SD-карту, она будет работать как брелок. Я также столкнулся с тем же, когда у него была SD-карта под управлением студии =512 МБ. Когда я выбрал «Продолжить без SD-карты», все работало нормально. Я прилагаю файл config.ini эмулятора.

Попробуйте это в эмуляторе терминала от имени пользователя root:

restorecon -v -R /data/media

В эмуляторе мне в итоге помог запустить диспетчер приложений и установка разрешений для хранилища.

  1. Дайте любой размер Sdcard в эмуляторе
  2. снимите флажок только для чтения в свойствах c:\user...android\avd ->
  3. протолкнуть файл через проводник
  4. перезапустите эмулятор

Это точно будет работать

Убедитесь, что у вас есть правильные разрешения.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
Другие вопросы по тегам