Внутреннее хранилище виртуального устройства Android 4.4 не изменится

При создании нового виртуального устройства Android 4.4 с помощью AVD Manager я не могу получить внутреннее хранилище размером более 200 МБ.

512 МБ - это размер внутренней памяти, который я хотел бы установить.

Я пробовал:

  • Установка внутренней памяти устройства в AVD Manager на 512 МБ.
  • В проекте Eclipse Debug Configurations на вкладке Target установите для дополнительных параметров командной строки эмулятора значение -partition-size 512.
  • В настройках Eclipse под Android я установил для параметров эмулятора по умолчанию значение -partition-size 512.
  • Editing the config file for my virtual device under (User)/.android/avd/(device).avd/config.ini
    • Then setting disk.dataPartition.size to disk.dataPartition.size=512M
    • Также попытался установить его на disk.dataPartition.size = 512 МБ
    • Также попытался установить его на data.dataPartition.size = 512M

Это происходит как на процессорах ARM, так и на процессорах Intel Atom x86.

Теперь, когда я перехожу на Android 3.0 (ARM), я могу изменить его размер, просто используя AVD Manager, как мне нравится. Есть ли проблема с Android 4.4? Я что-то пропустил? Или возможный обходной путь?


person Someone13    schedule 14.12.2013    source источник
comment
Следующая проблема Android открыта для этой ошибки. Текущий статус на 15.09.2014 назначен / упорядочен. code.google.com/p/android/issues/detail?id= 75141   -  person jkwuc89    schedule 15.09.2014


Ответы (10)


Теперь, когда файловая система эмулятора - ext4, я смог изменить размер userdata.img с помощью стандартных инструментов Linux.

# Navigate to AVD
cd ~/.android/avd/Nexus5
# Delete old image
rm userdata-qemu.*
# Re-size the image
resize2fs userdata.img 512M
# Start the emulator and enjoy
emulator @Nexus5

Изменить. Мне также удалось напрямую изменить размер userdata-qemu.img, но сначала мне пришлось запустить e2fsck.

 e2fsck -f userdata-qemu.img
 resize2fs userdata-qemu.img 512M
person Frohnzie    schedule 24.12.2013
comment
К сожалению, это единственный способ, который мне подходит. Мне нужно переключиться на Linux, сделать это, а затем снова переключиться на Windows. Это настоящая боль. - person Someone13; 06.02.2014
comment
Для Cygwin доступен пакет e2fsprogs. Может есть порт MinGW. - person Frohnzie; 06.02.2014
comment
В Mac OS X вы можете использовать brew install e2fsprogs при использовании диспетчера пакетов homebrew для установки этих инструментов. Поскольку по умолчанию они не связаны символическими ссылками на /usr/local, вы должны использовать их полный путь для их запуска, например /usr/local/Cellar/e2fsprogs/1.42.9/sbin/resize2fs. - person nerdinand; 28.03.2014
comment
Я использовал вышеупомянутые команды, но теперь мой эмулятор не загружается :( - person Kshitij Aggarwal; 04.07.2014
comment
Это в сочетании с приведенным ниже ответом tune2fs сработало, а затем мой эмулятор снова загрузился! - person Matt; 07.11.2014
comment
Как и Мэтт, я использовал это и tune2fs, и он работал нормально. Единственное, что мне пришлось изменить размер как userdata-qemu.img, так и userdata.img. - person Mitch ミッチ; 08.01.2015
comment
Одно дело - исправить любые ошибки FS, если e2fsck сообщает о них ... затем запустите tune2fs - person Moonwalker; 18.02.2015
comment
отличное решение! он работал на Mac. Также спасибо nerdinand за то, что объяснил, как установить недостающую команду для Mac. - person gili; 25.02.2015
comment
Edit часть ответа не сработала для меня, поскольку она изменяет userdata-qemu.img, а не userdata.img (первая не сделала ничего для моего AVD). Также: данные инструменты доступны в SDK с сентября 17 года, они находятся в папке ${MY_SDK_DIR}/emulator/bin64/. - person Den Drobiazko; 25.09.2017
comment
Также проверьте эту строку disk.dataPartition.size=... в config.ini и убедитесь, что это disk.dataPartition.size=512M, а не что-то еще. Я создал его с конфигурацией 2048 МБ в AS UI, и он был создан с disk.dataPartition.size=2G вместо disk.dataPartition.size=2048M, и он не работал - person Andrei Verdes; 08.04.2019

Даже указанное выше предложение может привести к зависанию эмулятора Android при загрузке логотипа. Причина в том, что resize2fs вносит изменения, которые в целом правильные, но которые рассматриваются Android как сломанные fs и не позволяют монтировать его в режиме rw, что приводит к зависанию процесса загрузки.

Просмотр журналов загрузки показывает что-то вроде этого:

EXT4-fs error (device mtdblock1): ext4_mb_generate_buddy:741: group 2, 32366 clusters in bitmap, 32370 in gd

Событие e2fsck не исправляет это для Android, и чтобы его обойти, я использую tune2fs, чтобы изменить способ, которым Android должен продолжать монтировать сломанные fs.

tune2fs -e continue userdata-qemu.img
person Alexei Volkov    schedule 25.02.2014
comment
Спасибо, это в сочетании с принятым ответом выше сработало для меня! - person nerdinand; 28.03.2014
comment
Да, мне пришлось сделать это, чтобы эмулятор загружался после загрузочного логотипа Android. - person Andrew Porritt; 16.07.2014
comment
Блестяще! в сочетании с ответом сработал для меня. Без tun2fs sim застрял в загрузочном образе Android. - person Moonwalker; 18.02.2015

Someone13, это определенно ошибка в Target: "Android 4.4.2 - API уровня 19"

У меня та же проблема - никак нельзя изменить размер внутреннего хранилища устройства в эмуляторе Android SDK (даже с «disk.dataPartition.size = xxxM» в config.ini или с аргументами командной строки «- размер раздела xxx ”) при использовании Android 4.4.2 в эмуляторе Android SDK.

Единственный способ установить нестандартный размер - использовать в качестве Target: Android 3.0 - API Level 11.

Мое оборудование: Windows 7 Ultimate SP1, RAM 4GB; Core Duo 2,28 ГГц; GT630

person Angel T    schedule 10.05.2014

Если у вас все еще возникает эта проблема в 2016 году, попробуйте удалить изображение из диспетчера AVD, а затем снова добавить эмулятор.

Казалось, что я не могу изменить размер эмулятора, что бы я ни делал, но он работал, когда я удалил изображение, а затем воссоздал его с внутренней памятью 1 ГБ.

person green0range    schedule 11.03.2016

Мне удалось создать это виртуальное устройство, может, поменять тип вашего устройства или что-то в этом роде?

введите описание изображения здесь

person Akshat Agarwal    schedule 23.12.2013
comment
У меня не сработало. Я использовал ту же настройку, что и на картинке. Я также пробовал обновить свои инструменты разработчика Android и обновил 4.4 до 4.4.2. По-прежнему те же проблемы. - person Someone13; 24.12.2013
comment
@ Someone13 А вы обновили и tiy sdk manager? Загрузите последнюю версию и опробуйте ее. - person Akshat Agarwal; 24.12.2013

Чтобы развить ответ @ Frohnzie, resize2fs и e2fsck теперь включены в инструменты SDK (вам может потребоваться обновить инструменты SDK, чтобы увидеть их), поэтому вам не нужно устанавливать их отдельно. Они расположены в папке yourAndroidSDKFolder / tools / bin (Windows, Linux) или yourAndroidSDKFolder / tools / bin64 (Mac, Linux).

person horstwilhelm    schedule 18.01.2016
comment
Не уверен, почему этот ответ получил отрицательный голос. +1, у меня сработало. Вот пример (с Android SDK, установленным Xamarin): ~/Library/Developer/Xamarin/android-sdk-macosx/emulator/bin64/resize2fs ~/.android/avd/avdname.avd/userdata.img 1024M. Это единственная команда, которая вам понадобится, если вы запустите после avd create, но перед запуском эмулятора в первый раз. - person Nate Cook; 11.09.2017
comment
Путь в ответе неверен. Комментарий @NateCook помог мне найти resize2fs. - person Faceles; 01.07.2018
comment
Если вы не можете найти resize2fs, вы также можете установить его через homebrew brew install e2fsprogs. Подробнее об этом подходе здесь: stackoverflow.com/questions/20579606/ - person Nate Cook; 03.07.2018

Ассаф Г. ответ хорош. Но я заметил, что в следующих ссылках в первой пользователь может создать Emulator с внутренней памятью 500MB. Но он получает exceptions, но не связанный с внутренней памятью. А в другой ссылке пользователь может создать emulator с внутренней памятью 4096MB. Но у него проблемы со скоростью. Поэтому я думаю, вам нужно попробовать с спецификациями, указанными в первой ссылке.

1. Эмулятор Android 4.4

2. вечный запуск эмулятора Android

person Kanwaljit Singh    schedule 24.12.2013

Для меня это было проблемой, когда я случайно выбрал эмулятор AOSP 4.4.2 в Android Studio. Эмулятор Google Inc. x86 (см. Ниже), похоже, не имеет этой ошибки.

введите описание изображения здесь

person Daniel Wilson    schedule 22.03.2015

delete /data/data/com.google.android.gms/files выпустит более 200 миллионов

person BuffK    schedule 10.05.2015

Здесь, похоже, есть какая-то загвоздка, в старых инструментах Android ниже версии 22 это не работает. Я обновил инструменты Android до 23, и это начало работать.

Моя конфигурация была API уровня 21 CPU: Intel X86 OS: Ubuntu Linux

person Kiran    schedule 19.03.2016