Сообщение об отсутствии места, хотя я использую link2sd!

У меня Android 2.1 (Sony Ericsson Xperia X8), поэтому я использую link2sd, потому что многим приложениям требуется дополнительное пространство, но OsmAnd всегда показывает сообщение «Недостаточно места».

Как решить проблему с местом?

PS

  • link2sd работает нормально.
  • У меня 64,13 МБ свободного места во внутренней памяти и 4,61 ГБ в 1-м разделе SD-карты и 2,18 ГБ во 2-м разделе SD-карты.
  • Размер OsmAnd apk: 16,5 МБ.

Ответы (3)

Я не знаю, сколько установленный размер приложения. Но, учитывая, как работает процесс установки, объяснение может быть простым:

  1. загружается .apkв /data/local(внутреннее хранилище)
  2. для установки может потребоваться некоторая распаковка, при этом временные файлы снова создаются во внутренней памяти
  3. только после этого приложение будет сохранено в своем окончательном месте (в вашем случае Link2SD позаботится о перемещении вещей на вашу карту)

Проверив нашу вики-метку с недостаточным объемом памяти , вы обнаружите, что ошибка «недостаточно памяти» возникает, когда доступное свободное место во внутренней памяти падает ниже ~ 25 МБ. Теперь давайте немного подсчитаем: у вас там свободно ~64 МБ. Это .apk~ 18 МБ. Нам нужно оставить ~ 25 МБ, чтобы не вызвать ошибку. Итак: 64 - 18 - 25 = 21. Если в процессе установки требуется более 21 МБ для временных файлов, вы получили свое объяснение. Поскольку (упакованный) .apkфайл уже имеет размер более 18 МБ, вполне вероятно, что этот предел будет превышен.

Для возможного обходного пути вы можете взглянуть на Настройка Play Store для загрузки временных файлов на SD-карту .

Большое спасибо за потрясающее объяснение; У вас есть идеи, как переопределить ошибку «недостаточно памяти», чтобы иметь возможность устанавливать такие приложения? Кстати, я загрузил apk на SD-карту, а не в /data/local, и когда я извлек apk вручную на своем Ubuntu, я получил папку с 29,6 МБ !!!
Я не думаю, что этот предел легко обойти. Я даже не знаю, где именно в системе он установлен. И, вероятно, для его присутствия есть веская причина (например, чтобы предотвратить зависание системы из-за «недостаточного места на диске»), поэтому не стоит возиться с этим. // Кстати: если этот ответ «приемлем», вы можете принять его (через галочку рядом с ним), чтобы другие люди с похожей проблемой могли его идентифицировать ;)
Еще один, который может быть вам полезен: настроить Play Store для загрузки временных файлов на SD-карту.
К сожалению, я не использую Google Play, я использую F-Droid из репозитория с открытым исходным кодом.
Я предполагаю , что оба вызывают один и тот же установщик пакетов, поэтому тот же трюк должен работать и для FDroid . Стоит попробовать наверняка.
ОК, я выполнил шаги, указанные в приведенной выше ссылке, но, к сожалению, все еще получаю то же сообщение об ошибке (команда ln выполнена успешно, поэтому /data/local content физически находится на SD-карте)
В таком случае, у меня нет идей, извините.
Большое спасибо, я с кем-то в сообществе помогу

Освободить место можно и при перемещении dalvik-cache на sd-карту. Проблема в том, что Android использует кеш для приложений, эффективно удваивая занимаемое пространство в разделе данных. Вместе с link2sd это может быть очень эффективно.

Хорошая идея, но как перенести dalvik-cache на SD-карту? это имя папки?
К сожалению, dalvik-cache уже существует на моей SD-карте?! Я думаю, что это создано Link2SD

У меня была такая же проблема.

Исправление для меня: я изменил место установки по умолчанию на автоматическое, что исправило это для меня.