Android: Ошибка установки: INSTALL_FAILED_INSUFFICIENT_STORAGE

Я получаю сообщение об ошибке "Ошибка установки: INSTALL_FAILED_INSUFFICIENT_STORAGE" при установке приложения на моем устройстве сегодня. Он работает нормально до вчерашнего дня, сегодня только им приходится сталкиваться с этой проблемой. Я удалил некоторые файлы на SD-карте, но все еще столкнулся с проблемой. Я уверен, что это не проблема с пространством на SD-карте. Кто-нибудь может предложить, как это решить.

- nehatha

Ответ 1

Это разрешилось с помощью android:installLocation="preferExternal" для тега <manifest> файла манифеста.

Как ниже:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="bros.imaq.demilic"
    android:versionCode="1"
    android:versionName="1.0"
    android:installLocation="preferExternal">

Спасибо

Ответ 2

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

  • В вашем файле AndroidManifest.xml добавьте android: installLocation = "preferExternal" в теге манифеста.

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.packagename.appname"
    android:versionCode="1"
    android:versionName="1.0" 
    android:installLocation="preferExternal">
    
  • Что еще более важно, очистите данные кэша на своем устройстве. Перейти к настройкам → хранилище → нажмите на кешированные данные. Это очистит кеш и освободит место.

  • Подключите свое устройство, очистите проект и снова запустите его на устройстве. Теперь проект будет запущен на вашем устройстве.

Ответ 3

В моем случае решение с использованием тега манифеста не сработало, поскольку для этого тега не было никаких ресурсов для Android.

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

Ответ 4

исправлена ​​моя проблема. проблема заключалась в том, что я установил установить место установки через adb на моем укоренившемся телефоне KitKat 4.4.2 за один раз, чтобы поместить мои приложения на SD-карту:

adb shell
pm set-install-location 2

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

pm set-install-location 2

Ответ 5

Я пробовал много вещей из этого потока и многих других, но в моем случае ничто не исправило бы его, чтобы он не появлялся с этим сообщением, для меня он сделал это, перейдя в "Приложения" > "Службы Google Play" и очистив там данные.

Я нахожусь в GooglePlayServices 7.3.29 и отлаживаю эту старую Galaxy S1

Ответ 6

Мне не удалось удалить приложение, поскольку оно не было в списке приложений. Мне пришлось удалить файл библиотеки из /Данные/приложение Пб

затем снова установите приложение.  adb install

Ответ 7

На галактическом устройстве:

В моем случае я обнаружил, что Storage- > Miscellaneous files- > CasheData занял 8 ГБ, потребляя всю внутреннюю память. Очистите папку и освободите память.

После перезагрузки устройства приложения, установленные без ошибок

Ответ 8

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

adb shell pm uninstall <my-application-package>

В большинстве случаев это выглядит как reset состояние эмулятора, так что я могу загрузить/установить/запустить в следующий раз.

У меня был опыт работы с .APK, который был очень большой (~ 60 Мб). Поскольку эмулятор действительно нуждается в 3x размера доступного APK (1x для загрузки в /data/local/tmp, 2x для сохранения установленных -1.apk и -2.apk копий в /data/app ), это была проблема когда у моего эмулятора было ограниченное внутреннее хранилище.

Я также делаю привычкой в ​​этих случаях удалять пакеты по умолчанию в /data/app

adb shell rm /data/app/*

И чтобы удалить любые остаточные файлы, я, возможно, нажал на /data/local/tmp

adb shell rm /data/local/tmp/*

Даже с этими мерами я испытал INSTALL_FAILED_INSUFFICIENT_STORAGE, несмотря на наличие достаточного свободного пространства (как сообщается du и df). Таким образом, кажется, что существует некоторая остаточная конфигурация. В этих случаях я должен Wipe Data с изображения эмулятора с помощью AVD.

Ответ 9

В моем случае в отношении INSTALL_FAILED_INSUFFICIENT_STORAGE. Мне пришлось пойти и отредактировать размер AVD Internal и SD Storage моего устройства в Android Virtual Deviece Manager. Я увеличиваю внутреннее хранилище с 200 до 2000, а SD-карту также на 2000. И добавьте android:installLocation="preferExternal" в мой AndroidManifest.xml файл

И это сработало для меня.

Ответ 10

Моя проблема заключалась в том, что я установил местоположение приложения на внешнюю SD-карту через оболочку на adb, после чего моя SD-карта умерла. даже если он больше не был установлен, и на экране "Настройки" по умолчанию была внутренняя карта, мое приложение не установило. я должен был reset местоположение по умолчанию через оболочку, чтобы заставить его работать. см. мой ответ на Android: Ошибка установки: INSTALL_FAILED_INSUFFICIENT_STORAGE.

Ответ 11

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

Ответ 12

Я использую Cordova для разработки Android и iPhone. После 4 месяцев развития эта ошибка возникла примерно в 10 раз.

ЧТО РАБОТАЕТ ДЛЯ МЕНЯ

* # 9900 # - МЕТОД № 1 Сначала все, что мне нужно было сделать, было...

  • Ручной набор * # 9900 #; затем выберите удаление DUMPSTATE. Но через несколько недель после этого я все равно получил ошибку.
  • Очистить оперативную память...
    • ДОЛГО НАЖМИТЕ КНОПКУ ДОМА.
    • нажмите кнопку RAM bttn _ PRESS Очистить память bttn внизу
  • Удалите мое приложение. ТЕПЕРЬ БОЛЬШЕ ОШИБКИ. YAY!!!

Но сегодня метод № 1 выше не работает. Итак, я...

СПОСОБ №2 - УДАЛЕНИЕ ДАННЫХ В СКАЧИВАНИИ

  • Я удалил все в папке "Загрузка" и... ТЕПЕРЬ БОЛЬШЕ ОШИБКИ. YAY!!!

Спасибо и надеюсь, что это поможет!

Ответ 13

возможно, это может помочь вам...

  • проверить настройки > хранилище > проверить Предпочитаемое место установки *

*, если съемная SD-карта. измените его на Внутреннее устройство. потому что, возможно, у вашей SD-карты есть проблемы.

надеюсь, что это поможет

Ответ 14

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

В моем журнале отображаются следующие строки:

PackageManager: Package ... could not be assigned a valid uid
PackageManager: package setting is null
PackageManager: Skipping remove dir for ...(user:0, appId:null)
PackageManager: Package couldn't be installed in /data/app/...
PackageManager: com.android.server.pm.PackageManagerException: Creating application package ... failed
PackageManager:        at com.android.server.pm.PackageManagerService.scanPackageDirtyLI(PackageManagerService.java:10630)

Основная причина кажется исключением в PackageManagerService:

    pkgSetting = mSettings.getPackageLPw(...);
    if (pkgSetting == null) {
        throw new PackageManagerException(INSTALL_FAILED_INSUFFICIENT_STORAGE,
                "Creating application package " + pkg.packageName + " failed");
    }

Для не установленного пользовательского приложения без общего пользователя используемый код в Settings:

private PackageSetting getPackageLPw(...) {
    // Assign new user id
    p.appId = newUserIdLPw(p);
    if (p.appId < 0) {
        PackageManagerService.reportSettingsProblem(Log.WARN,
                "Package " + name + " could not be assigned a valid uid");
        return null;
    }
}
// Returns -1 if we could not find an available UserId to assign
private int newUserIdLPw(Object obj) {
    // None left?
    if (N > (Process.LAST_APPLICATION_UID-Process.FIRST_APPLICATION_UID)) {
        return -1;
    }
}

private void removeUserIdLPw(int uid) {
    if (uid >= Process.FIRST_APPLICATION_UID) {
        final int N = mUserIds.size();
        final int index = uid - Process.FIRST_APPLICATION_UID;
        if (index < N) mUserIds.set(index, null);
    } ...
}

Таким образом, существует некоторая проблема с логикой removeUserIdLPw или деинсталляция, не вызывающая его на бесплатный идентификатор пользователя приложения, для которого требуются подробные журналы деинсталляции, которых у меня нет на данный момент.

Ответ 15

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