Ошибка отправки 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 есть две вещи:
Размер SD-карты указан, например, 512.
В теге "Оборудование" нажмите "Создать" и выберите "Поддержка 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: закрыть запущенный эмулятор
- шаг 2: откройте Android Virtual Device Manager(строка меню затмения)
- шаг 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
В эмуляторе мне в итоге помог запустить диспетчер приложений и установка разрешений для хранилища.
- Дайте любой размер Sdcard в эмуляторе
- снимите флажок только для чтения в свойствах c:\user...android\avd ->
- протолкнуть файл через проводник
- перезапустите эмулятор
Это точно будет работать
Убедитесь, что у вас есть правильные разрешения.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />