81
votes

Échec de l'installation en raison de: 'null' - Android Studio 3.5

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é:

  • Fichier de configuration Android Studio supprimé.
  • Fichiers Gradle supprimés du projet.
  • Caches invalides et réinitialisés.
  • Nettoyé / reconstruit le projet.
  • J'ai recherché des problèmes similaires Stackoverflow (rien ne correspond à mon problème)
  • Nettoyer installé (Suppression de tous les fichiers, y compris les SDK) Android Studio 3.5

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.


16 commentaires

J'ai un problème similaire - mais pour moi, c'est INSTALL_PARSE_FAILED_NOT_APK lors de l'exécution des tests Espresso


Je 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.


31 Réponses :


0
votes

Enfin, j'ai trouvé la solution

il suffit de définir v2SigningEnabled true

 signingConfigs {
    release {
        v2SigningEnabled true
    }
}


0 commentaires

-1
votes

essayez de appComponentFactory="" android: appComponentFactory="" en android:appComponentFactory="new" , "new" peut être n'importe quel mot


0 commentaires

1
votes

La suppression / la désinstallation de l'application de l'appareil a résolu le problème pour moi.


1 commentaires

J'ai désinstallé l'application de l'émulateur API 29 et cela a aidé.



12
votes

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.

  1. Exécutez sur API>=26 .
  2. Après chaque modification du code, 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.


2 commentaires

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 .



0
votes

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 .

entrez la description de l'image ici

Voici les nouveautés d'Android Studio 3.5 à ce sujet, qui vous aideront à mieux comprendre la fonctionnalité.

entrez la description de l'image ici


0 commentaires

6
votes

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
    }
    ...
}


0 commentaires

4
votes

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:

  1. 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.
  2. Naviguez vers Build, Execution, Deployment> Deployment .
  3. Cochez les cases pour activer le remplacement automatique de l'exécution pour l'une des actions Appliquer les modifications.
  4. Cliquez sur OK.

Capture d'écran sous Linux


1 commentaires

J'ai changé le système d'exploitation pour Linux et AS 3.5 fonctionne bien là-bas.



2
votes

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"


0 commentaires

97
votes

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

image d'écran


9 commentaires

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!



-2
votes

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.


0 commentaires

1
votes

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
        }
    }
}


0 commentaires

0
votes

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é.


0 commentaires

4
votes

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.


0 commentaires

3
votes

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"

entrez la description de l'image ici


0 commentaires

0
votes

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

  • c'est une version plus fonctionnelle que 3.5

Mais encore faut-il ajouter dans les indicateurs d'installation -r -t


1 commentaires

Nous devons attendre une version 3.6 «stable».



1
votes

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.


0 commentaires

17
votes

Vous devez désactiver "Utiliser le backend libusb" dans les préférences -> débogueur entrez la description de l'image ici


5 commentaires

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!



1
votes

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


0 commentaires

1
votes
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.

0 commentaires

0
votes

J'ai désinstallé l'application de l'émulateur, j'ai couru et tout est revenu à la normale


0 commentaires

0
votes

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.


0 commentaires

0
votes

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.


0 commentaires

0
votes

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


0 commentaires

0
votes

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


0 commentaires

0
votes

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.


0 commentaires

0
votes

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.


0 commentaires

0
votes

Exécuter -> Modifier la configuration -> installer les indicateurs: -r -t -> Appliquer -> Ok


0 commentaires

-2
votes

gradle.properties -> android.enableAapt2 = false


1 commentaires

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



3
votes

Construire> Nettoyer le projet , c'est pour moi. Avant de modifier un autre paramètre, essayez d'abord ceci.

Bon codage :)


0 commentaires

0
votes

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


0 commentaires

0
votes

Solution principale
  1. Supprimer et créer à nouveau l'application dans la configuration Exécuter / Déboguer
    • Options d'installation -> Vérifier l' installation pour tous les utilisateurs
  2. Fichier -> Paramètres -> Build, Execution, Deployment -> Debugger > Disable Use libusb backend


Conseils:

  • Configuration d'exécution / débogage -> Options de lancement> Lancer: activité spécifiée> Choisir une activité
  • Installez l'application à l'aide d'un autre appareil physique, d'une version de l'IDE ou d'un PC
  • Réinstaller l'IDE et supprimer .android
  • Réessayer avec la solution principale

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


0 commentaires