Je reçois le message d'erreur "Erreur d'installation: INSTALL_FAILED_INSUFFICIENT_STORAGE" lors de l'installation de l'application sur mon périphérique aujourd'hui . Il fonctionne correctement jusqu'à hier, aujourd'hui, je ne fais face qu'à ce problème. J'ai supprimé des fichiers sur ma carte SD, mais le problème persiste. Je suis sûr que ce n'est pas le problème avec l'espace sur la carte SD. Quelqu'un peut-il suggérer comment résoudre ce problème?.
--nehatha
Il a été résolu en ayant Android:installLocation="preferExternal"
pour la balise <manifest>
du fichier manifeste.
Comme ci-dessous:
<?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">
Je vous remercie
Vous devez faire deux choses après quoi cette erreur sera résolue.
Dans votre fichier AndroidManifest.xml, ajoutez Android: installLocation = "preferExternal" dans la balise du manifeste.
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.packagename.appname"
Android:versionCode="1"
Android:versionName="1.0"
Android:installLocation="preferExternal">
Plus important encore, effacez les données de cache de votre appareil. Allez dans les paramètres -> stockage -> cliquez sur les données en cache. Cela effacera le cache et libèrera de l'espace.
Reconnectez votre appareil, nettoyez votre projet et exécutez-le à nouveau sur l'appareil. Le projet va maintenant être exécuté sur votre appareil.
Dans mon cas, la solution utilisant la balise manifeste ne fonctionnait pas car il n'existait aucune ressource Android pour cette balise.
Qu'est-ce qui a fonctionné était simplement de désinstaller l'application sur le téléphone. Et les quelques autres versions que j'avais installées simultanément.
résolu mon problème. Le problème était que j'avais défini l'emplacement d'installation via adb sur mon téléphone rooté KitKat 4.4.2 en même temps, pour placer mes applications sur une carte SD:
adb Shell
pm set-install-location 2
Cette carte était bon marché et a échoué. même si je définissais l'emplacement par défaut sur la carte SD interne, même si je retirais la carte SD "endommagée" (bon marché et inutile), je ne pouvais désormais installer aucune application ... mais tout va bien maintenant, la solution devait fonctionner
pm set-install-location 2
J'ai essayé beaucoup de choses sur ce fil et beaucoup d'autres, mais dans mon cas, rien ne serait résolu, ce message n'arriverait pas à s'afficher. Pour moi, ce qu'il a fait est d'aller dans Applications> Services Google Play et effacer les données.
Je suis sur GooglePlayServices 7.3.29 et j'étais en train de déboguer sur cet ancien Galaxy S1
Dans mon cas, je courais sur un émulateur et mon application se bloquait en raison de en accédant à une référence locale obsolète en code natif. Cela n’est probablement pas pertinent, mais je le mentionne au cas où les collisions contribueraient au problème. Sur la base des conseils relatifs à INSTALL_FAILED_INSUFFICIENT_STORAGE , je fais maintenant preuve de diligence dans l’utilisation du PM pour désinstaller mon application après ces plantages:
adb Shell pm uninstall <my-application-package>
La plupart du temps, cela semble réinitialiser l'état de l'émulateur afin que je puisse télécharger/installer/lancer la prochaine fois.
J'ai eu l'expérience avec un .APK qui était brièvement très volumineux (~ 60Mb). Parce que l'émulateur a vraiment besoin de 3 fois la taille de l'AP disponible (1x pour télécharger vers/data/local/tmp, 2x pour conserver les copies -1.apk et -2.apk installées dans/data/app), il s'agissait d'un problème lorsque mon émulateur avait un stockage interne limité.
Je prends aussi l'habitude dans ces cas de supprimer les paquets par défaut dans/data/app
adb Shell rm /data/app/*
Et pour supprimer tous les fichiers résiduels que j'ai pu pousser vers/data/local/tmp
adb Shell rm /data/local/tmp/*
Même avec ces mesures, j'ai rencontré INSTALL_FAILED_INSUFFICIENT_STORAGE malgré apparemment un espace libre suffisant (comme indiqué par du
et df
). Donc, il semble y avoir une configuration résiduelle crue. Dans ces cas, je dois Wipe Data
à partir de l'image de l'émulateur en utilisant AVD.
Je n'ai pas pu désinstaller l'application car elle n'était pas présente dans la liste des applications .
puis installé à nouveau l'application . adb installer
peut-être que cela pourrait vous aider ...
* si carte SD amovible. changez-le en stockage interne. parce que, peut-être que votre carte SD a un problème.
j'espère que ça aide
En ce qui concerne INSTALL_FAILED_INSUFFICIENT_STORAGE ..__, je devais modifier la taille de mon disque AVD Internal et SD Storage de mon appareil sous Android Virtual Deviece Manager . J'augmente la mémoire interne de 200 à 2000 et la carte SD également à 2000. Et ajoute le Android:installLocation="preferExternal"
dans mon fichier AndroidManifest.xml
Et cela a fonctionné pour moi.
Lorsque le stockage externe n'est pas disponible et qu'il ne s'agit pas d'espace de stockage, le redémarrage d'un périphérique réel corrige cette erreur.
Mon journal montre ces lignes:
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)
La cause principale semble être l'exception dans PackageManagerService :
pkgSetting = mSettings.getPackageLPw(...);
if (pkgSetting == null) {
throw new PackageManagerException(INSTALL_FAILED_INSUFFICIENT_STORAGE,
"Creating application package " + pkg.packageName + " failed");
}
Pour une application utilisateur non installée sans utilisateur partagé, le code utilisé dans Paramètres est:
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);
} ...
}
Il y a donc un problème avec la logique removeUserIdLPw ou la désinstallation, qui n'appelle pas l'appel à l'ID d'utilisateur d'application gratuite, qui nécessite des journaux de désinstallation détaillés que je n'ai pas pour le moment.
Lorsque j'ai eu cette erreur, la tentative d'installation sur la carte SD ne fonctionnait pas et j'utilise un téléphone htc, mais la suppression de certaines applications du téléphone a fonctionné. Je pense que le téléphone a besoin d’une certaine quantité d’espace dans la mémoire interne et que cette quantité peut varier d’un téléphone à l’autre.
Sur le périphérique de galaxie:
Dans mon cas, j'ai trouvé que Storage-> Miscellaneous files-> CasheData occupe 8 Go, consommant la totalité de la mémoire interne. Videz le dossier et libérez de la mémoire.
Après le redémarrage de l'appareil, les applications installées sans erreur
J'utilise Cordova pour mon développement sur Android et iPhone. Après 4 mois de développement, cette erreur s'est produite environ 10 fois.
CE QUI A TRAVAILLÉ POUR MOI
* # 9900 # - METHODE N ° 1 Au début, tout ce que j'avais à faire était de ...
Mais aujourd'hui, la méthode n ° 1 ci-dessus n'a pas fonctionné. Donc je...
MÉTHODE N ° 2 - SUPPRIMER LES DONNÉES DANS LES TÉLÉCHARGEMENTS
Merci et espérons que cela aide!
mon problème était que j'ai défini l'emplacement de l'application sur une carte SD externe via Shell sur adb, après quoi ma carte SD est morte. même si elle n'était plus montée et que, dans l'écran Paramètres, l'emplacement par défaut était la carte interne, mon application ne s'installait pas. Je devais réinitialiser l'emplacement par défaut via Shell pour le faire fonctionner. voir ma réponse sous Android: erreur d'installation: INSTALL_FAILED_INSUFFICIENT_STORAGE .