J'essayais de modifier mon activité par défaut / main / démarrage (quel que soit votre nom) en modifiant le androidmanifest.xml
fichier. Tout ce que j'ai fait, c'est changer la android:name
propriété. cependant, cela a complètement cassé toute l'application. lorsque j'essaye de l'installer, il échoue et lit.
Erreur d'installation: INSTALL_PARSE_FAILED_NO_CERTIFICATES
Quand j'ai essayé de le ramener à son état précédent, il me donnait toujours la même erreur ... Qu'ai-je fait?
android
installation
apk
android-install-apk
mtmurdock
la source
la source
INSTALL_PARSE_FAILED_NO_CERTIFICATES
est une erreur-103
que vous pouvez obtenir / voir viaadb log
( src ) par exemple.D/PackageInstaller(21320): Installation error code: -103
Réponses:
Avez-vous édité le
AndroidManifest.xml
directement dans le.apk
fichier? Si c'est le cas, cela ne fonctionnera pas.Chaque Android
.apk
doit être signé s'il doit être installé sur un téléphone , même si vous n'installez pas via le Market. Les outils de développement fonctionnent autour de cela en signant avec un certificat de développement mais le.apk
est toujours signé.Une utilisation de ceci est qu'un périphérique puisse dire si une
.apk
est une mise à niveau valide pour une application installée, car si c'est le cas, les certificats seront les mêmes.Donc, si vous apportez des modifications à votre application, vous devrez la reconstruire
.apk
pour qu'elle soit correctement signée.la source
flutter clean
et exécutez / déboguez à nouveau! Cette opération est similaire à la solution ci-dessus car elle nettoie le dossier de construction et reconstruit à nouveau le fichier de construction lors de l'exécution / débogage!J'ai trouvé que cette erreur peut maintenant également se produire lors de l'utilisation d'une mauvaise configuration de signature. Comme décrit ici , Android 7.0 introduit un nouveau schéma de signature, V2 . Le schéma V2 signe l'ensemble de l'APK plutôt que simplement le JAR, comme cela est fait dans le schéma V1. Si vous vous connectez avec seulement V2 et essayez d'installer sur une cible antérieure à la version 7.0, vous obtiendrez cette erreur car les JAR eux-mêmes ne sont pas signés et le PackageManager antérieur à la version 7.0 ne peut pas détecter la présence de la signature APK V2.
Pour être compatible avec tous les systèmes cibles, assurez-vous que l'APK est signé avec les deux schémas en cochant les deux cases de version de signature dans la boîte de dialogue Générer l'APK signé d' Android Studio, comme indiqué ici:
Si seules des cibles 7.0 sont prévues, il n'est pas nécessaire d'inclure la signature V1.
la source
J'ai trouvé que cela était dû à ma version JDK.
J'avais ce problème avec 'ant' et c'était à cause de cette ATTENTION mentionnée dans la documentation:
J'ai JDK 7. Dans mon journal Ant, j'ai utilisé -v pour verbeux et il a montré
J'ai signé le JAR manuellement et l'ai zippé, mais cela a donné une erreur légèrement différente:
J'ai trouvé cette réponse ici.
Comment gérer INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES sans désinstallation
Je n'avais besoin que de le désinstaller et cela a fonctionné!
Maintenant, je n'ai plus qu'à modifier le build.xml pour utiliser ces options lors de la signature!
Ok, c'est ici: C: \ Program Files \ Java \ android-sdk \ tools \ ant \ build.xml
la source
La plupart du temps, la solution à cette erreur est vraiment simple:
la source
résolu (pour moi) en utilisant dans keytool les arguments
et en utilisant dans jarsigner
solution trouvée dans
Quels types de pièges existent pour la signature d'APK Android?
la source
J'étais également confronté au même problème. J'ai d'abord généré une version en utilisant V2 et l'ai installée sur des appareils mobiles fonctionnant sous OS 5.1 et j'ai eu le même problème. Mais la construction fonctionnait bien sur la tablette fonctionnant sous OS 7.0. J'ai donc généré une version avec la signature V1 Jar et cela fonctionnait bien sur les deux appareils.
Conclusion: si vous prenez en charge l'appareil sous Android OS 7.0. Utilisez la signature jar V1 pour générer la construction.
la source
Dans mon cas, je pourrais créer et exécuter des versions de version, mais j'ai obtenu l'
INSTALL_PARSE_FAILED_NO_CERTIFICATES
erreur en essayant de faire une version de débogage.La solution était de supprimer mon
debug.keystore
fichier et de laisser ADT le recréer. Il avait apparemment expiré.Une meilleure solution à long terme consiste à créer explicitement un
debug.keystore
qui n'expire pas après seulement un an, au lieu de laisser ADT le créer. Voici la commande pour faire cela:Lorsque vous y êtes invité, entrez ces valeurs:
la source
C'est une solution moche mais rapide: utilisez JDK 6 au lieu de 7.
Après avoir lu la réponse de Chloé, j'ai désinstallé mon JDK 7 (je n'en ai pas besoin actuellement de toute façon) et installé JDK 6. Cela a résolu le problème. Une meilleure solution permettrait à fourmi d'utiliser JDK 6 (sans désinstaller 7). Peut-être possible de modifier / définir cette propriété:
java.library.path
dans le fichier local.properties. C'est dans le répertoire du projet (racine).
De toute façon, Android ne fonctionne pas avec JDK 7 (seulement 6 ou 5), alors faire en sorte que le script ant utilise également JDK 6 ou 5 est probablement une bonne solution.
la source
C'est parce que la version précédemment générée et la version actuelle ont un conflit dans la version de signature entre v1 (signature jar) et v2 (signature APK complète),
Pour corriger, cochez la version de signature appropriée dans la boîte de dialogue Générer l'APK signé
la source
Récemment, j'ai eu cette erreur lors de la mise à niveau vers Android Studio 4.0. La cause était que le projet avait la signature V2 désactivée dans la configuration de la connexion
build.gradle
.La solution consistait à le supprimer
v2SigningEnabled false
ou à le définir explicitementtrue
, qui est la valeur par défaut.la source
Dans les versions plus récentes d'Android Studio 3.2+, si vous essayez d'exécuter l'
release
installation et que vous n'avez défini aucune configuration de signature, il affichera l'invite d'erreur et l'installation échouera. Ce que vous devez faire est d'exécuter ladebug
compilation ou de configurer correctement la configuration de signature (V1 ou V2).la source
la plupart des réponses sont vraies. et d'autres raisons qui se produisent sont
la source
Cela peut se produire si vous essayez d'inclure une
.jar
bibliothèque contenant unAndroidManifest.xml
fichier.la source
Vous pouvez également vérifier
Project Structure
->Default Config
->Signing Config
après avoir ajouté tout ce dont tu as besoin
la source
La définition de la variable d'environnement
JAVA_HOME
sur JDK 5 ou 6 (au lieu de JDK 7) a corrigé l'erreur.la source
Après un certain temps et plusieurs discussions en ligne sur le sujet, j'ai réussi à corriger mon projet.
Il prend principalement en compte les derniers fichiers (qui peuvent être des images ou des mises en page ) que vous avez mis. Si vous les supprimez, cela fonctionnera et vous pourrez reconstruire votre projet.
la source
J'avais cette erreur dans ma console Eclipse. Il s'avère que j'avais deux pots avec le même contenu mais des noms différents et ils étaient en conflit l'un avec l'autre. Je viens de supprimer l'un d'entre eux et j'ai réussi à installer l'application sur l'appareil.
la source
J'obtenais cette erreur parce que j'ai publié que mon
ant release
échouait parce que je manquais d'espace disque.la source
J'ai eu cette erreur lorsque j'ai essayé d'installer un projet Xamarin basé sur l'aperçu Android N sur un téléphone exécutant l'api v23. La solution est de ne pas faire ça.
la source
Une autre façon d'obtenir cette erreur consiste à créer à l'aide
ant
de macOS et à disposer d'un fichier d'icône Finder (Icon\r
) dans l'arborescence des sources de l'application. Il semblejarsigner
ne pas pouvoir faire face au retour chariot dans le nom de fichier et, bien qu'il prétende que la signature est valide si vous-verify
utilisez l'APK, il en résulte toujours un APK qui ne sera pas installé sur un appareil. Ironiquement, le plugin Google Drive Finder est une excellente source de fichiers d'icônes Finder.La solution est d'exclure les fichiers incriminés (qui sont de toute façon inutiles dans l'APK) avec un spécificateur comme celui-ci dans le
fileset
:la source
Ce problème se produira si vous installez une version non signée d'APK. Vérifiez si vous installez l'APK correct.
la source
J'ai eu ce problème avec ionic / Visual Studio Code (exécuter Android sur l'appareil):
J'ai désinstallé l'application sur l'appareil mobile (Paramètres / Applications), l'erreur a disparu et l'application démarre.
la source
Cela me lance cette erreur aujourd'hui parce que j'ai une application avec un sdk minimum de 28 et que je suis en train de jouer sur un émulateur avec une version SDK de 23. Habituellement, ce n'est pas possible (car le bouton de lecture est grisé), mais ce n'est pas le cas aujourd'hui beaucoup.
la source
Essayez tout d'abord de faire cela:
la source
Si vous utilisez l'émulateur, essayez de le réinitialiser et si vous désinstallez d'abord l'application sur mobile, désactivez le mode développeur, puis activez-le, le problème sera résolu.
la source