J'ai mis à jour le studio Android vers la version 3.5, depuis que je rencontre un problème d'installation d'APK. C'est le seul journal qu'il affiche:
Installation did not succeed. The application could not be installed: INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION Installation failed due to: 'null' Retry
Cela se produit lorsque vous essayez d'installer l'APK sur un appareil réel. Si je désinstalle l'application de l'appareil, puis que je réexécute la compilation, elle ne s'installe qu'une seule fois, puis continue de lancer cette erreur lors de la prochaine installation. Il fonctionne bien sur un émulateur mais je ne peux pas utiliser un émulateur pour tout.
Ce que j'ai essayé:
Mise à jour
J'ai installé Linux Mint sur ma machine et y ai testé l'AS 3.5, pour une raison quelconque, tout fonctionne bien, même pour les appareils Android 7 et inférieurs.
Système d'exploitation précédent: Windows 10 1903
Système d'exploitation actuel: Linux Mint 19.2
Je pense que ce problème peut provenir de machines Windows.
31 Réponses :
Enfin, j'ai trouvé la solution
il suffit de définir v2SigningEnabled true
signingConfigs { release { v2SigningEnabled true } }
essayez de appComponentFactory=""
android: appComponentFactory=""
en android:appComponentFactory="new"
, "new"
peut être n'importe quel mot
La suppression / la désinstallation de l'application de l'appareil a résolu le problème pour moi.
J'ai désinstallé l'application de l'émulateur API 29 et cela a aidé.
Ce problème dans Android Studio se produit pour les appareils inférieurs à l' API 26
(Android 8). Cela est dû au remplacement d' InstantRun
, maintenant appelé ApplyChanges .
Il semble qu'il n'y ait que deux façons avant de le réparer dans la prochaine mise à jour.
API>=26
.run configuration
changeant le deploy
de l' APK
vers le groupe d' App bundle
et vice-versa. Si je comprends bien, cela reconstruira correctement l'application et le bogue de contournement.Bien sûr, il existe une option pour supprimer manuellement l'application de l'appareil avant d'exécuter l'application depuis AndroidStudio.
J'ai un appareil Android 9.0 et j'ai ce problème. Cependant, lorsque je mélange des tests en cours entre l'émulateur et un appareil réel, l'application et les tests semblent s'exécuter assez souvent. Je ne sais pas vraiment pourquoi mais peut-être que cela aidera quelqu'un.
Peut-être que vous pouvez réexécuter avec succès l'application sur API26+
si vous cliquez sur Apply changes
, au lieu de rerun
? Il s'agit du nouveau bouton à droite de la rerun
.
Je n'ai pas fait face au problème moi-même. Cependant, auparavant, nous avons eu quelques problèmes avec l'exécution instantanée d'Android Studio. Je voudrais suggérer de vérifier les paramètres suivants dans votre Android Studio et de décocher les paramètres pour vérifier si votre code fonctionne maintenant.
Accédez à Android Studio -> Preference
, puis décochez ce qui suit sous les Deployments
.
Voici les nouveautés d'Android Studio 3.5 à ce sujet, qui vous aideront à mieux comprendre la fonctionnalité.
Pour moi, la désinstallation de l'application ou le projet de nettoyage "résout" le problème. Pour le rendre moins frustrant, j'ai ajouté un travail propre pour déboguer le type de construction comme suit:
buildTypes { ... debug { clean } ... }
Après avoir lu les notes de publication concernant Apply Changes , j'ai finalement trouvé une solution ici: https://developer.android.com/studio/run#apply-changes-run-fallback
Activer l'exécution de secours pour appliquer les modifications
Après avoir cliqué sur Appliquer les modifications et redémarrer l'activité ou Appliquer les modifications de code, Android Studio crée un nouvel APK et détermine si les modifications peuvent être appliquées. Si les modifications ne peuvent pas être appliquées et entraîneraient l'échec de l'application des modifications, Android Studio vous invite à exécuter à nouveau l'icône Exécuter votre application. Cependant, si vous ne souhaitez pas être invité à chaque fois que cela se produit, vous pouvez configurer Android Studio pour qu'il réexécute automatiquement votre application lorsque les modifications ne peuvent pas être appliquées.
Pour activer ce comportement, procédez comme suit:
- Ouvrez la boîte de dialogue Paramètres ou Préférences:
- Sous Windows ou Linux, sélectionnez Fichier> Paramètres dans la barre de menus.
- Sous macOS, sélectionnez Android Studio> Préférences dans la barre de menus.
- Naviguez vers Build, Execution, Deployment> Deployment .
- Cochez les cases pour activer le remplacement automatique de l'exécution pour l'une des actions Appliquer les modifications.
- Cliquez sur OK.
J'ai changé le système d'exploitation pour Linux et AS 3.5 fonctionne bien là-bas.
J'ai moi aussi ce même problème après la mise à niveau vers la version 3.5. Je me demandais si vous avez eu de la chance pour que «Run» fonctionne avec un appareil connecté?
MISE À JOUR: Je devais faire en sorte que cela fonctionne en définissant "APK à partir du lot d'applications" sous Options d'installation dans la boîte de dialogue "Configurations Exécuter / Déboguer"
Ouvrir la boîte de dialogue Configuration d'exécution / débogage (Windows: Exécuter> Modifier les configurations)
modifier Votre application> Général> Options d'installation> Installer les drapeaux .
ajouter des indicateurs d'installation -r -t
.
Ce drapeau signifie adb install -r -t apkpath
Ce drapeau signifie adb install -r -t apkpath
, je suppose. @ TaseerAhmad
-r
signifie "remplacer l'application existante". -t
signifie "autoriser les packages de test"
D'où vient cet homme et comment a-t-il pensé à cette solution? Donnez-lui une médaille!
Ne travaille pas pour moi! :( Veuillez regarder mon problème. C'est un peu différent du vôtre. Stackoverflow.com/questions/57770464/...
Cela fonctionne pour l'installation d'application mais pas pour les tests. Lorsque j'essaye d'exécuter androidTest.
Le paramètre est Exécuter> Modifier les configurations, si version Windows.
C'était juste incroyable
Fonctionne comme du charme
merci beaucoup pour cette friandise - je devais supprimer mon application avant chaque session de débogage après la mise à niveau d'Android-Studio ... maintenant cela fonctionne tout seul!
Enfin, j'ai eu la solution dans la modification de la configuration de l'exécution du code dans l'option d'installation DEPLOY -> sélectionnez la 4ème option -> option (Rien) -> Appliquer Et l'application fonctionne correctement dans Android Studio 3.5. Sur mobile et émulateur également. Cela fonctionne correctement dans la version Android 9 également Il s'agit d'une solution permanente.
Ajoutez une dépendance de tâche gradle " propre " avant d'installer / d'exécuter vos apks en utilisant la configuration ci-dessous.
assembleDebug.dependsOn clean assembleRelease.dependsOn clean
Copiez et collez le code ci-dessus dans votre fichier app/build.gradle
, cela fonctionne pour toutes les variantes de construction.
En particulier, le code ci-dessus sera équivalent à ci-dessous si vous n'avez que des types de build debug et release:
project.afterEvaluate { android.applicationVariants.all { variant -> variant.outputs.each { output -> def capitalizedVariant = variant.name.capitalize() def assembleVariantTask = project.tasks."assemble${capitalizedVariant}" assembleVariantTask.dependsOn clean } } }
Essayez d'exécuter la commande "adb devices", si la sortie est vide, puis reconnectez le périphérique. Cela m'a aidé avec la même erreur. Android Studio 3.5 ne détermine pas que l'appareil s'est déconnecté.
Il y a un problème avec Lineage OS comme indiqué par l'équipe Google dans https://issuetracker.google.com/issues/139782879 :
Nous sommes en mesure de le reproduire sur un appareil avec LineageOS. Il ne prend pas entièrement en charge un appel système que nous utilisons pour DeltaInstall.
Il n'y a pas de solution apparente (autre que la suppression de l'APK du dossier de construction ou la désinstallation de l'application).
Nous devrions avoir une solution de contournement pour cela, mais dans l'état actuel des choses, LineageOS n'aura pas DeltaInstall et devra toujours effectuer une installation complète plus lente.
Changer en Nothing
comme indiqué par OP ne déploiera pas l'APK sur l'appareil (c'est pourquoi une erreur ne sera pas affichée), donc cela ne résoudra pas le problème.
Éditer:
Ce problème a été corrigé dans Android Studio 3.6.
Merci pour les commentaires. Cela devrait être corrigé dans les dernières versions de 3.6.
J'ai obtenu la solution dans le code modifier la configuration d'exécution en changeant dans Deploy, sélectionnez l'APK par défaut et installez flag = -r -t , puis appliquez pour l'exécution. L'application fonctionnera sur tous les appareils et émulateur. J'ai été testée dans OPPO 1 plus, Samsung Tab, émulateur également .
S'il vous plaît allez pensé le bouton Modifier la configuration Exécuter près du bouton Exécuter dans Android Studio
modifier l'application> général ==> options d'installation ==> installer les indicateurs
ajouter des indicateurs d'installation -r -t
-r signifie "remplacer l'application existante". -t signifie "autoriser les packages de test"
Il y a encore un bogue sur mon Mac OS, lorsque je reçois un nouvel appareil réel et que j'essaye d'installer apk à partir d'Android Studio 3.5 - et je trouve la manière laide de le résoudre - ouvrez le terminal en studio et suivez:
cd app/build/outputs/apk/debug adb install -r -t your_app_name.apk
Et cela doit faire avec chaque projet et chaque appareil !!
Édité:
J'ai finalement installé
Android Studio 3.6 Canary
Mais encore faut-il ajouter dans les indicateurs d'installation -r -t
Nous devons attendre une version 3.6 «stable».
Ce qui a fonctionné pour moi pour supprimer l'ancienne application, puis réexécuter le projet. Dans ce cas, l'ancien certificat de signe ne dérange pas.
Seule cette solution a aidé - Xubuntu 18.04
Je ne peux pas croire que cela a fonctionné! Android Studio 3.5.1 Pont de débogage Android version 1.0.41 Version 29.0.5-5949299
Fonctionne comme du charme. J'ai lutté contre ce problème pendant des mois et seule cette réponse a fonctionné pour moi
OMG! cela a résolu un gros problème. Lutté avec ce problème pendant des mois aussi bien .. Wow!
Correction de cela pour moi sur OSx 10.15! Merci!
J'ai également eu cette erreur lorsque j'ai exécuté l'application sur un vrai pocophone xiaomi 1 et résolu ce problème en exécutant d'abord l'application sur l'émulateur, puis sur mon pocophone xiaomi 1
splits { abi { enable true reset() include 'x86', 'armeabi-v7a','x86_64' universalApk true } } Due to the different constructions such as 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', and 'arm64-v8a', we have to add the configuration above into build.gradle file.
J'ai désinstallé l'application de l'émulateur, j'ai couru et tout est revenu à la normale
Pour moi minSdkVer = 22, tarSdkVer = 28
, exécutez Gradle -> app -> Tasks -> build -> clean && cleanBuildCache
action Gradle -> app -> Tasks -> build -> clean && cleanBuildCache
, problème résolu.
J'ai appuyé sur l'icône du marteau pour reconstruire l'application, puis elle l'a installée. Alors je ne sais pas? L'ensemble de la plate-forme de travail de piratage Android est nul.
Tout cet argent, pourtant, Google ne peut pas embaucher ou trouver des programmeurs assez bons pour créer leur propre système d'exploitation.
Dans mon cas, cela ne fonctionne qu'en désactivant la vérification de la signature APK:
$ adb shell settings put global verifier_verify_adb_installs 0
Et en utilisant les indicateurs -r -t
mentionnés ci-dessus
J'ai également rencontré le même problème, j'ai suivi les étapes suivantes 1) Clean Project 2) Rebuilt Project
Cela a résolu mon problème
Dans mon cas, je ne peux pas résoudre avec toutes les réponses ci-dessus afin de trouver un autre moyen. Enfin, j'ai trouvé la solution. Trouvez simplement les bons pilotes de téléphone. Mon téléphone de développement est Samsung Galaxy Note 2 (MODÈLE: GT-N7105 / Android 4.1.2) . Je partage juste ma solution sur la façon dont je l'ai résolue. J'espère économiser votre temps.
Le problème se produit lorsque vous testez un nouveau module. Tout d'abord, écrivez-le individuellement, puis ajoutez-le à l'application principale. Lorsque vous l'ajoutez à l'application principale, supprimez votre "test_app" de votre téléphone.
Exécuter -> Modifier la configuration -> installer les indicateurs: -r -t -> Appliquer -> Ok
gradle.properties -> android.enableAapt2 = false
NE PAS UTILISER CELA! Aapt est devenu obsolète au profit de aapt2 et sera finalement supprimé. Cette solution de contournement cessera de fonctionner et causera d'autres problèmes lors de la suppression d'aapt
Construire> Nettoyer le projet , c'est pour moi. Avant de modifier un autre paramètre, essayez d'abord ceci.
Bon codage :)
J'ai eu ce problème il y a quelques minutes lorsque j'ai essayé d'exécuter mon application sur un appareil réel et que j'ai arrêté la compilation de gradle avant la fin. Ce que je viens de faire, c'est de désinstaller l'application sur l'appareil et de réexécuter l'application sur AVD et sur un appareil réel (simultanément) et cela a fonctionné. J'espère que cela fonctionne pour toi aussi
Use libusb backend
Conseils:
Si vous souhaitez installer et ouvrir l'application, vous pouvez utiliser adb avec les commandes suivantes:
$ adb install -r -t absolute-path.apk $ adb shell am start -n "com.package.flavor.env/.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
GL
J'ai un problème similaire - mais pour moi, c'est
INSTALL_PARSE_FAILED_NOT_APK
lors de l'exécution des tests EspressoJe reçois également
INSTALL_PARSE_FAILED_NOT_APK
Je reçois également le même problème.
wow Google, comment pouvez-vous en faire une version STABLE ?!
Avez-vous vérifié si Instant Run est activé dans votre Android Studio?
@ReazMurshed il n'y a pas d'exécution instantanée dans Android Studio 3.5
Mais je pense que j'ai vu une chose similaire comme une exécution instantanée lorsque j'ai mis à jour mon Android Studio. Laissez-moi vérifier à nouveau.
@ManoharReddy Je pense que l'application des modifications est la même chose que Instant Run.
@ReazMurshed En fait, c'est complètement différent de la course instantanée, c'est une refonte complète à partir de zéro
Je vois. Merci pour l'information. Je vais creuser pour une meilleure compréhension une fois que j'aurai du temps.
C'est parce que votre Instant Run ne sera pas activé.
Dans Android Studio 3.5, l'exécution instantanée est supprimée, alors comment gérer l'erreur
Oh je vois. Je n'ai pas encore mis à jour. Mais j'ai eu la même erreur hier en 3.4, donc ci-dessus mon commentaire a fonctionné!
On dirait que cette fonctionnalité est cassée ainsi que l'exécution instantanée. Je dois nettoyer la compilation à chaque fois (ce qui est à chaque exécution) pour installer avec succès l'APK sur l'appareil.
Voir ma réponse ci-dessous. J'ai trouvé la solution ici: developer.android.com/studio/run#apply-changes-run-fallback . Testé sur un appareil fonctionnant sous Android 9. Je ne l'ai pas testé sur une autre version.
Enfin, j'ai eu la solution dans la modification de la configuration de l'exécution du code dans l'option d'installation DEPLOY -> sélectionnez la 4ème option -> option (Rien) -> Appliquer Et l'application fonctionne correctement dans Android Studio 3.5. Sur mobile et émulateur également. Cela fonctionne correctement dans la version Android 9 également Il s'agit d'une solution permanente.