web-dev-qa-db-fra.com

Echec [INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE]

J'ai entré la commande ci-dessous dans le CMD et la commande a renvoyé l'erreur sous la commande.

Commande:

phonegap run Android --verbose --stacktrace

Erreur:

ERREUR: Echec du lancement de l'application sur le périphérique: 

ERREUR: impossible d'installer apk sur le périphérique: pkg: /data/local/tmp/MainActivity-debug.apk

Echec [INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE]

13
SPottuit

Le problème, c’est que vous essayez d’installer une version de votre APK qui est inférieure à celle qui est déjà sur votre appareil.

La désinstallation va certainement résoudre ce problème pour vous.

ADB permet plus de flexibilité adb install -r -d <apk path>, mais je ne suis pas sûr que Phonegap dispose de cette fonctionnalité.

adb install [-lrtsdg] <file>
   - Push this package file to the device and install it
     (-l: forward lock application)
     (-r: replace existing application)
     (-t: allow test packages)
     (-s: install application on sdcard)
     (-d: allow version code downgrade)
     (-g: grant all runtime permissions)

Mettre à jour:

Il s'avère que ce n'était pas le bon message d'erreur pour rétrograder la version de l'application. Enfait, c'est quelque chose de complètement séparé. J'ai trouvé ce lien qui explique avec précision la situation:

tl; dr Vous ne pouvez pas tromper d’abord le nouveau modèle d’autorisations Android 6 publier un APK avec targetSdk 23 qui accordera toutes les autorisations puis publiez une nouvelle version avec targetSdk 22 ou moins . Vous obtiendrez une erreur INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE.

Je travaillais sur une application avec targetSdk 23 (Android 6 Marshmallow) lorsque il m’a semblé que c’était peut-être un problème de sécurité avec le nouveau Modèle d'autorisation Android. Les appareils Android 6 approuvent toutes les autorisations sur installez le temps et ensuite l'utilisateur doit les approuver chaque fois que l'application demande la permission. Que se passe-t-il si l'utilisateur installe l'application - auto accorder toutes les autorisations - et ensuite, il ne demandait pas de les utiliser, et Ensuite, l'application a été mise à jour avec les mêmes autorisations, mais avec un targetSdk inférieur?

J'ai passé quelques minutes à créer une application ciblant le SDK de niveau 23 et ajouté une permission de localisation précise (ACCESS_FINE_LOCATION). Alors je installé et exécuté l'application. L'application n'a pas demandé la permission d'accéder le gestionnaire d'emplacement. Ensuite, j'ai réglé le niveau du SDK sur 22 et j'ai essayé de installez l'application. Heureusement, l'installation n'a pas été possible. J'ai une erreur en disant échec [INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE].

32
Knossos

Solution:

J'ai réussi à supprimer l'erreur en désinstallant mon application de mon appareil.

Cause:

L’erreur a probablement provoqué la mise à jour de mon SDK Android avec SDK Manager .

9
SPottuit

J'ai eu cette erreur dans VS2015 avec TACO et le débogage pour Android avec un profil d'émulateur particulier: Tablette XHDPI de VS Emulator 10.1 "Marshmallow (6.0.0). Le projet sur lequel je travaillais a été installé en tant qu'application sur ce profil je l'ai utilisé pour le débogage. J'ai résolu le problème en désinstallant et en réinstallant ce profil particulier: Outils -> Emulateur Visual Studio pour Android -> Désinstaller le profil. Le profil réinstallé ne contenait plus mon application et l'erreur disparaissait. C'est l'équivalent de VS Emulator désinstaller l'application d'un périphérique distant, je suppose.

0
pprchsvr