it-roy-ru.com

«Недостаточно свободного места», даже если в памяти устройства много свободного места

Общий объем моего приложения составляет 10 МБ, а после установки он займет менее 20 МБ. В Galaxy Note I при обновлении моего приложения появляется сообщение "Недостаточно доступного хранилища", где в памяти устройства (внутренней) есть 214 МБ свободного места. Это происходит даже при попытке загрузить новое приложение.

Я долго искал решение и идеальную причину этой проблемы, но не могу найти ее. Как мне решить эту проблему?

Это результат "adb Shell df" в моем другом устройстве, у которого та же проблема. Имеет 35 МБ свободного места:

/dev: 115788K total, 0K used, 115788K available (block size 4096)
/mnt/asec: 115788K total, 0K used, 115788K available (block size 4096)
/system: 179840K total, 168376K used, 11464K available (block size 4096)
/data: 201856K total, 168524K used, 33332K available (block size 4096)
/cache: 108544K total, 1284K used, 107260K available (block size 4096)
/cdrom: 8960K total, 8632K used, 328K available (block size 4096)
/tmp: 2048K total, 28K used, 2020K available (block size 4096)
/pds: 1536K total, 1320K used, 216K available (block size 4096)
/mnt/sdcard: 1928992K total, 1014496K used, 914496K available (block size 32768)
/mnt/secure/asec: Permission denied
138
Sniper

Вот очень простое решение, которое работает на моем Samsung Galaxy S II и Примечание 1 ; Я понятия не имею о других моделях:

  1. Откройте приложение телефона и переключитесь на клавиатуру.
  2. Наберите *#9900#
  3. На появившемся экране нажмите кнопку с надписью "Удалить dumpstate/logcat".

Таким образом я восстановил около одного ГБ системного пространства.

175
Berislav Lopac

Сначала я попытался ответ Берислава Лопака , но я получил Connection problem or invalid MMI code., когда попытался набрать *#9900#. Я использовал CyanogenMod на телефоне, и я считаю, что телефоны с пользовательскими ПЗУ не используют стоковую звонилку, поэтому им не хватает функциональности SysDump.

По сути, Delete dumpstate/logcat в SysDump очищает файлы журнала в /data/log. Но вы также можете сделать это вручную без SysDump. (Это предполагает, что ваш телефон был рутирован, что будет иметь место, если ваш телефон работает под управлением CyanogenMod или любого другого нестандартного ПЗУ.)

  1. Убедитесь, что установлены приложения Superuser и Terminal Emulator. (Они поставляются с большинством пользовательских ПЗУ.)
  2. Запустить эмулятор терминала
  3. Введите su, нажмите клавишу возврата.
  4. Это вызовет Superuser Prompt. Предоставление доступа. (Вам придется подождать три секунды, прежде чем вы сможете нажать "Разрешить".)
  5. Чтобы изменить текущий каталог, введите cd /data/log с последующим возвратом.
  6. УБЕДИТЕСЬ , что вы находитесь в каталоге data/log, введя pwd с последующим возвратом. Он должен распечатать текущий рабочий каталог, в котором вы находитесь: /data/log. Очень важно убедиться, что вы находитесь в правильном каталоге, так как следующий шаг удалит все файлы в любом рабочем каталоге, в котором вы сейчас находитесь.
  7. Удалите все файлы в каталоге, введя rm * с последующим возвратом.
  8. Закройте окно терминала или приложение или введите exit, чтобы выйти из сеанса su.

Я удалил примерно 1500 файлов размером 1 МБ и исправил проблему "Недостаточно места на диске".

Как и с другими постерами, у меня есть Galaxy S II , поэтому, похоже, проблема с этой моделью.

Если кто-нибудь знает о постоянном решении остановить накопление файлов журнала, пожалуйста, дайте мне знать.

ПРИМЕЧАНИЕ. Некоторые файловые менеджеры ошибочно перечисляют /data/log как пустой, поскольку они работают непривилегированно и, следовательно, не имеют разрешений для просмотра файлов внутри.

66
rhlee

Операционная система может зарезервировать память для использования в том, что вы обычно запускаете (вроде файла подкачки). Вы можете быть в состоянии втиснуть в другое приложение или два

  • Попытка установить их сразу после перезагрузки, или
  • Принудительно закрывая некоторые приложения, которые работают (но этот второй вариант может не быть хорошей идеей - см. Первую ссылку),

Но единственным очень хорошим решением может быть

  • Переразделите вашу SD-карту, чтобы приложения могли быть установлены непосредственно на нее (см. Вторую ссылку).

Посмотрите на сообщение на форуме Это должно было произойти: предупреждение о нехватке памяти!.

Важной частью является:

ОС знает, сколько памяти ей нужно для запуска приложений, которые у вас уже есть. Это прекрасный пример.

Теперь вы можете "обмануть" ОС, принудительно закрыв некоторые приложения, которые находятся в оперативной памяти. Это увеличит вашу "корзину" памяти, которая может позволить вам установить приложение, но помните, что если вы будете делать такие вещи, вы будете вызывать только проблемы в будущем: задержки, сообщения об ошибках и т.д. (Потому что вы дурачите ОС думая, что вы дали ему дополнительную память, что на самом деле вы сделали .. вы только принудительно закрыли).

Еще одно хорошее объяснение происходящего - в сообщении на форуме Недостаточно внутренней памяти.

Важной частью является:

Причина, по которой ваше внутреннее пространство заполняется, в 3 раза. Во-первых, когда приложение "перемещается" на SD-карту, оно перемещается не полностью. Только часть этого фактически идет. Во-вторых, кеш Dalvik приложения по-прежнему хранится во внутренней памяти (которая занимает значительное пространство). В-третьих, данные для приложений и все ваши системные настройки хранятся во внутренней памяти (да, некоторые приложения используют SD-карту для части своих данных, но каждое приложение имеет данные, хранящиеся во внутренней памяти).

И эта ветка содержит предложения о том, какие разделы вы можете сделать для своей SD-карты, чтобы разрешить 'moar apps'!

17
A.M.

У менеджера пакетов ("установщик") есть проблема проектирования: он не может отличить кучу возможных ошибок и регулярно выдвигает оправдание "недостаточно места".

Первые шаги сделаны: определите, что это проблема установки (1.) и , а не , связанная с нехваткой памяти (2.)

  1. Это происходит на консоли (pm install file.apk), с Google Play, другими рынками и ручной установкой GUI (например, "щелчок" по загруженному файлу APK ); это не проблема загрузки, ...
  2. Пакеты полностью попадают в раздел /data -или- в основном на SD-карта (и немного на /data). - В обоих местах достаточно места, как указано на исходном плакате (33 МБ и> 900 МБ соответственно) для пакета <20 МБ. –And– раздел /data имеет более 10% свободного места (33 МБ - это более 10% от 200 МБ).

Удивительно, но большинство ответов не принимают это во внимание ...

В действительности раздел /data нуждается в очистке от остатков от предыдущих установок.

  • Определите общее имя проблемного пакета (например, com.abc.def)
  • Удалите пакет (например, pm uninstall com.abc.def)
  • Проверьте, что осталось от данных (например, find /data -name 'com.abc.def*')
  • Удалить этот материал

Инсталлятор подавит их, вернувшись с неправильной причиной. - Интересная часть: если пакет устанавливается на SD-карту (принудительно или другими способами), некоторые (все?) Остатки на /data не повреждают ... что приводит к ложному убеждению, что это действительно проблема с пространством (больше места на SD-карте ...)!

Вопрос о переполнении стека, из которого я получил половину этого вопроса: Решение ошибки INSTALL_FAILED_INSUFFICIENT_STORAGE на Android.

12
Robert Siemer

Та же проблема возникла для моего телефона, и это решило проблему:

  • Перейдите к Application Manager/Apps из настроек.

  • Выберите Google Play Services.

Enter image description here

  • Нажмите кнопку Uninstall Updates справа от кнопки Force Stop.

  • После удаления обновлений вы должны увидеть кнопку Disable, которая означает, что вы сделали.

Enter image description here

Вы увидите много свободного места, доступного сейчас.

6
My God

Первое, что нужно сделать, это проверить детали сообщения об ошибке. Для этого вы можете использовать LogCat App .

Для меня проблема была ошибка вроде

Cannot rename native library directory /data/app-lib/vmdl-... to /data/app-lib/com.xyz

Решением было активировать функцию здравого смысла в моем мозгу и искать папку com.xyz в папке app-lib с ES-Explorer. Я узнал, что эта папка уже была там. Таким образом, устранение проблемы решило проблему с переименованием, и теперь приложения могут быть установлены правильно.

6
Sentenza

У меня также была эта проблема при установке приложения после того, как я удалил это. Я решил загрузить Lucky Patcher и затем щелкнуть меню - устранение неполадок - удалить исправления и резервные копии (недостаточно места для хранения). Обратите внимание, что вам нужно ваше устройство для рута.

2
Federico

У меня есть некорневый Nexus 4 (в котором есть только внутренняя память, нет SD-карты), и я получал эту ошибку при обновлении более крупных приложений. Меньшие приложения будут обновляться нормально.

Я обнаружил, что это потому, что я недавно зарегистрировался в сервисе Play Music All Access и закрепил несколько альбомов.

Они загружаются в скрытый раздел /data, и именно в этом месте не хватило места (я полагаю)

Я открепил пару альбомов, и теперь у меня нет проблем с установкой приложений.

2
Shevek

У меня была эта проблема даже с большим количеством внутренней памяти и памяти SD. Это решение предназначено только для приложений, которые не будут обновляться или ранее были установлены на телефоне и не будут устанавливаться.

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

Первое, что нужно сделать, это сначала удалить приложение и повторить попытку. В моем случае это сработало для нескольких приложений.

Для следующего шага вам нужен root-доступ на вашем телефоне:

С помощью файлового менеджера перейдите в/data/app-lib и найдите каталог (или каталоги), связанные с приложением. Например, для Kindle это com.Amazon.Kindle. Удалить это. Также перейдите в/data/data и сделайте то же самое.

Затем перейдите в Play Store и переустановите приложение. Это работало для всех приложений в моем случае.

2
tomliddle

1. Перезагрузите телефон и затем переустановите приложение !

Я также получал ту же проблему Insufficient Storage Available на моем устройстве, но я перезапустил свое устройство , и оно работало нормально!

PS.:

2. Установите приложение на внешнее хранилище

Для этого установите Storage Location с помощью следующей команды

adb Shell pm set-Install-Location 2 // 2 for external storage ([SD card][1])

adb Shell pm set-Install-Location 1 // 2 for internal storage 

adb Shell pm set-Install-Location 0 // for auto
2
Tarsem Singh

Я попробовал несколько из предложенных решений, но ни одно из них не помогло мне. После некоторых исследований я наткнулся на подсказку, чтобы переместить некоторые приложения из /data/app в /system/app. Это освободило достаточно места для установки новых приложений и обновления существующих.

Я могу порекомендовать бесплатную утилиту SystemCleanup для перемещения приложений.

1
Florian Feldhaus

Это проще всего сделать. Перейдите к settings, найдите storage или memory, коснитесь его и найдите cached data. коснитесь его и очистите ваши данные оттуда. ПРОСТО!!!

1
Bhargav Modi

У меня была такая же проблема, и она была решена с помощью App Cache Cleaner .

(HT: acejavelin @ Android Forums )

1
Shaul Behr

Очистка кеш-памяти Google Play также поможет вам ... Перейдите на страницу информации о приложении в Google Play и очистите ее.

0
Ashok Chakravarthi

Я не нашел бесплатное решение, которое работало, но я нашел решение: я использовал несвободную версию резервной копии Titanium, нажал на контекстную кнопку и решил проверить память, занятую приложениями. Найдите приложение для загрузки, и вы увидите, что для его кэша выделено определенное количество пространства. Очистить данные это опция, которую вы хотите.

0
tony gil

Я получил то же сообщение об ошибке, если имя пакета было слишком длинным (> 128 символов). Просто использование более короткого имени устранило проблему.

0
reinra

Если у вас есть root, удалите все папки по пути:

/data/app-lib/

А затем перезагрузите устройство.

У меня была эта проблема много раз, и это исправление работало для меня каждый раз. У него даже есть поток XDA .

Я пишу все папки, потому что, если есть проблема с одним приложением, есть большая вероятность, что у вас есть проблема с другими приложениями. Кроме того, раздражает поиск только папок проблемных приложений.

0
android developer

У меня было более 2 ГБ внутреннего пространства, но я не смог установить/обновить приложения ни из Google Play , ни вручную.

Какова бы ни была причина, очистка раздела кеша решила мою цель.

Шаги: Восстановление -> Очистить раздел кеша -> Перезагрузить систему сейчас

0
Saurabh

После удаления нескольких приложений я могу установить новое ...

Я думаю, что ОС рассчитывает общий объем памяти, необходимый для запуска всех приложений. Если он не подходит, то он говорит "в достаточном количестве памяти".

0
VKGS

Большая часть свободного места зарезервирована ОС. Лучшее и простое решение - переместить ваши приложения во внешнее хранилище. Это освободит много места для вас.

0
Riz

Обязательно ли устанавливать приложение во внутреннем хранилище? Если вы не используете какой-либо сервис, вы можете попробовать установить его на внешнем хранилище. Это можно сделать, добавив следующий код в манифест:

 manifest  
 xmlns:Android="http://schemas.Android.com/apk/res/Android"
 Android:installLocation="preferExternal".....

Обычно это работает на Android 2.2 и выше в большинстве случаев. Убедитесь, что ваше приложение будет работать правильно, если оно установлено во внешнем хранилище. Вы получите хорошее представление о том, какие приложения могут быть установлены на внешнем хранилище в Местоположение установки приложения.

0
MMss

Зайдите в Настройки, Приложения, Все и удалите Google Play Store. Это заменит старую версию, а затем вы можете загрузить без "ОШИБКА недостаточно памяти" Это работает для меня

0
Carlos AG

Я решил эту проблему для себя. Тем не менее, внутренняя и SD-память показывали много свободного места. Это была проблема с памятью телефона, которая была почти заполнена.

Поэтому я переместил многие из своих приложений из памяти телефона во внутреннюю память, чтобы освободить память телефона: Настройки -> Хранение -> Приложения = (в разделе внутреннего хранилища) -> вкладка Internal

Вот те, которые не проверены и занимают место в памяти телефона.

Нажмите на приложения (по одному) Нажмите на кнопку: "Переместить во внутреннее хранилище".

После того, как вы освободите таким образом значительную часть памяти телефона, ошибка не должна появиться.

0
Akhilesh Singh

У меня была такая же проблема на Galaxy S4 (i9505) на складе ROM (4.2.2 ME2). У меня было свободное место, как это: 473 МБ на /data, 344 МБ на /system, 2 ГБ на /cache. Я получал бесплатную ошибку при любой загрузке из Play Store (маленькое приложение, 2,5 МБ), я проверял LogCat , там было сказано: "Отмените загрузку ABC из-за недостатка свободного места".

Затем я освободил место на /data, 600 МБ бесплатно, и теперь он работает нормально, приложения загружаются и устанавливаются;). Похоже, что для этого ROM нужно немного больше свободного места, чтобы нормально работать ...

0
George Dima

Некоторые приложения необходимо перезагрузить для полной установки. Android просто говорит, что по какой-то причине у него недостаточно памяти - следует сказать, что для завершения установки требуется перезагрузка. Попробуйте - он установится полностью автоматически после перезагрузки.

0
GalaxyNote

Когда дело доходит до обычного устройства, поведение устройств кажется другим для другой группы устройств.

Некоторые странные сведения, которые я слышал от разных людей:

  • Перезагрузите устройство после отключения
  • Удалите некоторые приложения с устройства и освободите не менее 100 МБ
  • Попробуйте установить приложение из командной строки, ./adb install ~Application_path
  • Переместите приложение в хранилище SD-карты или установите его по умолчанию на SD-карте в файле манифеста Android, Android:installLocation="preferExternal"
  • В папке Raw есть много ресурсов для сбора памяти, которые устанавливают копию в память телефона при установке файла APK , и на устройстве недостаточно памяти для их загрузки.
  • Выполните рутирование вашего устройства и установите несколько ROM, которые помогут сообщить устройству об оставшейся памяти.

Я надеюсь, что один из них имеет отношение к вам! ;)

0
dharam