Как решить: «Не удалось выдвинуть выделение: недостаточно памяти»


11

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

Я сделал следующие шаги:

  1. Запустить Затмение
  2. Перейти в: Окно -> Открыть перспективу -> Другое ...
  3. Выберите DDMS из открытого диалога
  4. Выберите вкладку « Проводник ».
  5. Нажмите « Вставить файл на устройство » и выберите библиотеку, которую я хочу нажать.

    Не удалось нажать выбор: файловая система только для чтения

  6. Сверните все открытые окна и откройте командную строку
  7. Напишите: cd C: \ android \ android-sdk-windows \ platform-tools введите
  8. Написать: abd remount enter

    Вы увидите успешный пересчет

  9. Максимизируйте Eclipse и попробуйте шаг 5.

    Не удалось выдвинуть выделение: недостаточно памяти

Ошибка появляется! Что нужно сделать, чтобы решить эту проблему ... Пожалуйста, помогите.

ADDED

1) Когда я пишу ADB SHELL MOUNT:

rootfs / rootfs ro 0 0 
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0 
none /acct cgroup rw,cpuacct 0 0 
tmpfs /mnt/asec tmpfs rw,mode=755,gid=1000 0 0 
tmpfs /mnt/obb tmpfs rw,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,cpu 0 0
/dev/block/mtdblock0 /system yaffs2 rw 0 0 
/dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/vold/179:0 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0 
/dev/block/vold/179:0 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/sdcard/.android_secure tmpfs ro,size=0k,mode=000 0 0

2) Shel Prompt начинается с: #


2
Вопросы разработки рассматриваются здесь не по теме в соответствии с нашими FAQ .
newuser

Я прочитал слово «Затмение», поэтому проголосовал за его закрытие, но теперь, когда я прочитал остальную часть поста и связанный пост, я начинаю думать, что это хороший пример вопросов, которые вы получаете при разработке приложения, которое на самом деле не вопрос развития. Я не могу отказаться от своего закрытого голосования, но я могу предупредить других людей, чтобы они не голосовали близко так быстро.
Ли Райан

Я согласен с @Lie, что это серая зона. Я говорю, что это должно остаться открытым пока.
Эль

@ViTo Brothers Apoyan: У меня есть два вопроса 1) Какой у вас выходной сигнал, когда вы делаете adb shell mount(это даст вам все файловые системы, смонтированные на устройстве, и их варианты монтирования)? 2) когда вы это делаете adb shell, приглашение оболочки начинается с #(что указывает на то, что вы root) или $(что указывает на то, что вы не root)?
Ли Райан

также вы пометили этот вопрос с помощью android-x86, android-x86 ! = эмулятор Android, работающий на хост-компьютере x86. Вы на самом деле используете Android-x86 или просто обычный эмулятор?
Ли Райан

Ответы:


12

Запустите эмулятор из командной строки, чтобы вы могли указать /systemразмер раздела, используя -partition-size <MB>опцию. Например, я использую это для запуска эмулятора под управлением Android 1.6 с /systemразделом 512 МБ:

emulator -avd Donut -partition-size 512

... где "Donut" - это то, что вы назвали своим AVD (вы можете проверить его в диспетчере AVD Eclipse, если вам нужно). emulatorДвоичная должен находиться в вашем tools/каталоге в вашем SDK установить, что для вас , как представляется, C:\android\android-sdk-windows\toolsтак убедитесь , что вы cdв этот каталог первым (или добавить его в вашей системы %Path%).

Eclipse может не сразу взять эмулятор или распознать его, а затем разорвать соединение. Если что-то из этого происходит, щелкните меню просмотра на вкладке «Устройства» (маленькая стрелка рядом с кнопкой свертывания) и выберите «Сбросить adb», чтобы восстановить соединение.

Как только он появится на ваших устройствах, сделайте то, что вы пытались сделать ранее. Запустите, adb remountчтобы перевести /systemраздел в режим чтения-записи, затем используйте Eclipse, чтобы отправить файл туда, куда вы хотите. Минуту назад я проверил пару случайных файлов и смог /system/xbinбез проблем отправить их.

Для справки, вот размер раздела и использование /systemна моем эмуляторе пончика, когда я указываю раздел 512 МБ:

> adb shell df
...
/system: 508416K total, 61332K used, 447084K available (block size 4096)
...

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

> adb shell df
...
/system: 65536K total, 61204K used, 4332K available (block size 4096)
...

Кроме того, вы можете установить параметры командной строки в конфигурации запуска вашего приложения через Eclipse, если хотите. Перейдите в перспективу Java, затем выберите Run->Run Configurationsв строке меню. Выберите свое приложение на левой панели, а затем выберите вкладку «Цель». Внизу находится текстовое поле с надписью «Дополнительные параметры командной строки эмулятора», и вы можете добавить -partition-size <MBs>в это текстовое поле, чтобы эмулятор, запускаемый при запуске приложения, имел больший /systemраздел.

Примечание. Возможно, вам придется добавить также -no-snapstorageили другие параметры, чтобы отключить загрузку существующего снимка, в командную строку. Это не сработало без меня.


Большое спасибо !!! Вы решаете мою проблему !!! большое спасибо !!!!!!!
ViTo Brothers Apoyan

0

Самый простой способ: перезагрузить телефон в режиме восстановления, чем смонтировать систему. Теперь вы можете отправить файл без проблем.


Я полагаю, вы пропустили строку /dev/block/mtdblock0 /system yaffs2 rw 0 0в вопросе? Так что же должно измениться при монтировании из рекавери? Full is full, вы не получаете дополнительного места в полной файловой системе, монтируя ее «откуда-либо».
Иззи

-2

Как решить: «Не удалось выдвинуть выделение: недостаточно памяти»

При создании нового виртуального устройства Android (AVD) .. на вкладке SD CARD введите значение (100) в МБ.

На самом деле, это работает для меня!


1
Это не правильно. Создание виртуальной SD-карты не поможет вам перенести файлы в /systemраздел, как задает вопрос. Они совершенно не связаны между собой складскими помещениями.
eldarerathis
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.