web-dev-qa-db-fra.com

Le fichier APK n'existe pas sur le disque

Lorsque j'essaie de déboguer une application sur Android, _ Studio donne cette sortie de journal:

Le fichier APK /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk n'existe pas sur le disque.

J'ai redémarré Android Studio, mais je ne peux pas résoudre ce problème. Comment puis-je le résoudre ? Je vous remercie

220
sorunluadam

Cliquez sur cette option pour résoudre l'erreur:

Run: View > Tool Windows > Gradle > [project] > Tasks > build > build

460

Si vous rencontrez ce problème après la mise à jour vers Android Studio V 3.1, essayez ce qui suit.

Je faisais face au même problème lors de la mise à jour vers Android Studio 3.1. Toutes les autres solutions que j'ai trouvées ici étaient plutôt manuelles, car vous devez nettoyer et reconstruire à chaque fois, ce n'est pas bon du tout. Mais grâce à la réponse de Iman Marashi , j'ai pu résoudre le problème.

Aller à Exécuter -> Modifier les configurations ...

Assurez-vous que vous avez une "marque Gradle aware" dans la section Avant le lancement:

Run/Debug Configurations

Pour l'ajouter, cliquez sur le signe + , puis sélectionnez Créer et une fenêtre contextuelle apparaît, laissez simplement le champ de texte vide et cliquez sur OK et OK.

206
Seven

Dans mon cas, l’exécution de "Projet de synchronisation avec des fichiers Gradle" a aidé. Ni redémarrer Android Studio ni effacer le cache n'a fait rien.

64
Bartek

Si vous voulez juste connaître la conclusion, allez à la dernière section. Merci.

Habituellement, lorsque le projet de construction échoue, voici quelques astuces courantes que vous pouvez essayer:

  • Construire -> projet propre
  • Vérifier variantes de construction
  • Redémarrer Android Studio (comme vous l'avez mentionné)

Mais pour être plus spécifique à votre problème - quand Android Studio n'a pas pu trouver le fichier APK sur le disque. Cela signifie que Android Studio a en fait construit le projet et généré le fichier APK, cependant, pour une raison quelconque, Android Studio n'est pas en mesure de trouver le fichier.

Dans ce cas, veuillez vérifier le répertoire imprimé en fonction du journal. C'est utile.

Par exemple:

Avec Android Studio 2.0 Preview (version 143.2443734).

  1. Commander vers un commit spécifique (afin qu'il soit détaché de head): git checkout [commit_hash]
  2. Exécuter le projet
  3. Android Studio raconte: Le fichier APK /Users/MyApplicationName/app/build/outputs/apk/app-debug-HEAD.apk n'existe pas sur le disque.
  4. Allez dans le répertoire, il y a un fichier nommé: app-debug- (HEAD.apk (avec une parenthèse supplémentaire)
  5. Exécuter branche git

    * (HEAD détaché à 1a2bfff)

Donc, ici, vous pouvez voir, en raison de l'erreur de mon script de construction de Gradle, la dénomination de fichier est en quelque sorte fausse.

L'exemple ci-dessus n'est qu'un scénario qui pourrait entraîner le même problème, mais il n'est pas nécessaire que ce soit la même cause fondamentale que la vôtre.

En conséquence, je vous recommande fortement de vérifier le répertoire (pour trouver la différence), et de vérifier votre script build.gradle (vous pouvez changer le nom de l'APK ici, quelque chose comme ci-dessous):

applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def newFileName = "whatever you want to name it";
            def apk = output.outputFile;
            output.outputFile = new File(apk.parentFile, newFileName);
        }
    }
33
Jing Li

Assurez-vous de ne pas avoir apostrophe ou & dans votre chemin

20
Rim Gazzah

Assurez-vous qu'il y a Make compatible avec la gradation dans les configurations Run/Debugging >> avant la section launch :

Like this image

19
Iman Marashi

J'ai été témoin d'un problème similaire, généralement lorsque je change de branche. Pour moi, fermer Android Studio rm -rfv ~/Library/Caches/AndroidStudio* et redémarrer Android Studio est le ticket.

17
user213493

Dans Android Studio 3.1.1, sélectionnez Fichier | Synchroniser le projet avec des fichiers Gradle.

Dans Android Studio 3, sélectionnez Fichier | Synchroniser.

Puis relancez votre projet.

13
live-love

L'année est 2018. Android La version de Studio est 3.2.0 alpha3 et nous rencontrons toujours ce problème. Comme aucune de ces solutions ne fonctionnait pour moi, voici mes 2 centimes:

Chaque fois que cela se produit, je génère simplement l'apk depuis la ligne de commande:

gradlew assembleDebug

MISE À JOUR

Supprimer le dossier .AndroidStudio[version] et perdre toutes vos préférences et vos caches ... semble résoudre le problème

11
Androiderson

Dans mon cas, j'utilisais un caractère spécial dans le chemin de mon fichier d'application. J'ai fermé le Android Studio et supprimé le caractère ' de mon chemin d'accès au fichier d'application. Tout a bien fonctionné lorsque j'ai rouvert le projet.

7
Immortal Code

Pour les utilisateurs de type Unix (Linux/MacOs X), au lieu de supprimer ~/.gradle/caches /, faites en ligne de commande:

$ cd path_to_you_project
$ touch build.gradle

Puis, demandez à Android Studio de créer un APK, il réinitialisera lui-même le cache de gradles.

6
Jean-Marc Delafont

J'ai résolu la construction d'un apk en utilisant l'option Construire de la fenêtre supérieure et Construire APK. Pas besoin de faire quelque chose de bizarre.

6
Mun0n

Mon problème est que j'ai ajouté le numéro de version à l'APK. Changer le numéro de version et resynchroniser Gradle a résolu le problème pour moi.

def appendVersionNameVersionCode(variant, defaultConfig) {
    variant.outputs.each { output ->
        if (output.zipAlign) {
            def file = output.outputFile
            def removeApp = file.name.replace("app-", "")
            def removeType = removeApp.replace("-release", "")
            def fileName = removeType.replace(".apk", "." + defaultConfig.versionName + ".apk")
            output.outputFile = new File(file.parent, fileName)
        }

        def file = output.packageApplication.outputFile
        def removeApp = file.name.replace("app-", "")
        def removeType = removeApp.replace("-release", "")
        def fileName = removeType.replace(".apk", "." + defaultConfig.versionName + ".apk")
        output.packageApplication.outputFile = new File(file.parent, fileName)
    }
}
5
Lou Morda

Build ---> Build APK (s) et assurez-vous que cela fonctionne

3
Kadir altınok

Fichier -> Invalider les caches/redémarrer

2
dvrm

Si vous avez essayé toutes les réponses ci-dessus et que cela n'a pas fonctionné, essayez de désactiver la fonctionnalité "Exécution instantanée". Celui-ci m'a aidé après toutes les tentatives.

Fichier -> Paramètres -> Construire, Exécuter, Déployer -> Exécuter Instantané -> Décocher la case

2
AnZ

Dans mon cas, le problème était que la configuration de débogage ne soit plus valide , même si le nom de la méthode de test, la classe ou le package n’a pas changé.

J'ai supprimé les configurations de Run-> Edit Configurations, ici:

enter image description here

Le studio Android en créera un nouveau automatiquement.

2
ByteArtisan

J'ai également eu ce problème, après avoir nettoyé la construction. Pour ma solution, je viens de synchroniser le diplôme et cela a fonctionné pour moi.

2
u_pendra

Le problème pour moi était que, d'une manière ou d'une autre, il ne pouvait vraiment pas trouver l'apk, alors que l'apk existe.

The APK file /Users/Paul/AndroidStudioProjects/Android-tv-launcher/ui/build/outputs/apk/nameofapk.apk does not exist on disk.
Error while Installing APK

Tout ce que je devais faire était un clic droit sur le chemin relatif apk-copy, et juste

adb install -r <paste of relative path>

Et l'apk était installé et bon à partir. Ce problème est arrivé sur OSX pour moi.

1
Boldijar Paul

si vous utilisez Linux, essayez de définir les droits en écriture sur le dossier app/build.

1
Catalin Clabescu

Mon problème consistait à inclure les minutes dans le nom du fichier. Il recherchait appname_debug_0.9.0.1_170214_2216.apk lorsque le fichier généré était appname_debug_0.9.0.1_170214_2217.apk, de sorte que le code de fichier de sortie (appelé ailleurs) était clairement appelé à partir de deux points différents. dans la construction.

applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def project = "appname"
            def SEP = "_"
    //        def flavor = variant.productFlavors[0].name
            def buildType = variant.variantData.variantConfiguration.buildType.name
            def version = variant.versionName
            def date = new Date();
            def formattedDate = date.format('yyMMdd_HHmm')

            def newApkName = project + SEP + /*flavor + */ SEP + buildType + SEP + version + SEP + formattedDate + ".apk"

            output.outputFile = new File(output.outputFile.parent, newApkName)
        }
    }
1
Ian Spencer

Résolu en mai 2018 avec le nouveau Android Studio 3.1. Supprimez les répertoires .gradle, .idea et construisez-les dans le dossier de votre application. Ensuite, essayez de l'exécuter à nouveau et vous ne verrez pas l'erreur.

1
Gerardo Suarez

j'ai eu le même problème. c'était dû à un faux nom dans le chemin. Il y avait un caractère spécial dans le chemin comme ceci: C:\Utilisateur\Mon App\Projekte-Tablet & Handy J'ai supprimé le caractère "&" et cela a bien fonctionné.

1
Orientos

Face au même problème avec le grade 1.5

Je devais nettoyer les fichiers de construction:

Construire -> Projet propre

Et créez un APK pour forcer la compilation et la synchronisation complètes des fichiers de gradle:

Construire -> Construire APK

Je ne sais toujours pas pourquoi ni comment cela s'est passé malgré tout.

1
Simon PA

Assurez-vous que dans le chemin généré dans vos journaux, dans votre cas:

/Users/MyApplicationName/app/build/outputs/apk/app-debug.apk

le dossier "output" a en effet un dossier "apk".

C'était mon problème, si ce n'est pas là, vous devrez exécuter la tâche "assembleRelease" dans Gradle en suivant la capture d'écran ci-dessous;

Steps to run the gradle assembleRelease task Ensuite, le dossier sera généré.

0
Amgad

Je modifie un peu le fichier build.gradle et clique sur "Synchroniser maintenant", d'accord.

0
凤清云

J'ai essayé toutes ces choses et aucune d'entre elles n'a fonctionné. J'ai fini par avoir à faire deux ou trois choses en même temps. Très frustrant que cela ait pris autant de temps.

Le problème que j'avais était lié à l'exécution de mes tests unitaires après la mise à niveau vers AS 3.1.

Voici ce que j’ai fait ... 1.) Exécuter/Modifier les configurations/Sélectionner les tests .... 2.) Ajouter des options à "Créer une marque" 3.) Cochez la case "Ignorer l’installation si ADK n’a pas changé" sur Onglet Divers

Bonne chance.

0
Rob Breidecker

Accédez à l'option Construire sur la barre supérieure de Android studio>, puis créez "Construire l'APK (s)". Une fois la compilation créée, ouvrez le dossier où elle est disponible (app\build\output\apk), puis fermez-la. le dossier, c'est tout .... puis essayez d'installer l'application.

0
BISHWAJEET

j'ai résolu cette application en faisant

  1. Première construction -> Construire Apk (s)
  2. Lancer l'application maintenant

si cela n’a pas fonctionné, nettoyez et construisez le projet, puis recommencez 1 & 2.

0
saigopi

À l'aide de Android Studio 2.2.1, j'ai cliqué sur l'option Synchroniser le projet avec des fichiers Gradle, dans le menu déroulant situé en haut, Outils> Android.

Semblable, à une réponse affichée ci-dessus, voir ci-dessous pour une capture d'écran de la façon d'obtenir cette option.

enter image description here

0
Lee Brindley

modifiez le fichier: build.gradle (répertoire app). en fait: vous ne devriez pas changer ce fichier, seulement par ceci pour avoir des astuces de synchronisation, puis synchroniser le projet.

0
兰坡阳

Rien de ce qui précède ne m'a aidé, mais j'ai compris cela en passant à une autre version du panneau Outils de construction, puis en revenant à la version requise.

0
Dmytro Karataiev

Résolu ce problème en mettant à jour les Android SDK-Build Tools.

Le bouton s'appelle "Synchroniser le projet avec les fichiers Gradle" et il se ressemble: Gradle Sync ... toujours besoin de cliquer dessus, lors de la mise à jour du numéro de version, ce qui entraîne un autre nom de fichier APK (à moins que le nom de fichier n'ait pas changé, l'installation du package fonctionne toujours, ce qui donne à penser que le nom du fichier est mis en cache) . L'option équivalente CLI Gradle semble être --recompile-scripts.

@see Annexe D. Ligne de commande Gradle .

0
Martin Zeitler

dans mon cas, juste

Affichage> Fenêtres d'outils> Gradient> clic droit sur [projet]> Actualiser le projet Gradle

0
Jenkyn

Commencez par supprimer le nettoyeur en allant dans la configuration, il se peut que vous nettoyiez la construction après avoir créé l’APK.

Click on edit from set run/debug then click on gradle list select the clean project item and then click on -(top 2nd from left).
0
Sonu Kumar

Supprimez le répertoire ~/.gradle/caches /. Vous pouvez le faire lorsque Android Studio est ouvert. (Référez-vous à l'installation de nom de package incorrect pour pm) Appuyez sur l'icône "Synchroniser le projet avec les fichiers Gradle" sur Android Studio Exécuter le projet et le chemin d'accès distant sera correct.

Reportez-vous à la réponse @ Android Studio obtient un nom de package incorrect lors de l'exécution de .apk

0
mask
    1) This problem occure due to apk file .if your apk file
        (output/apk/debug.apk) not generated in this format . 

    2) you should use always in gradle file .

    buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
            }
        }
0
priti

Je l'ai fait fonctionner par:

  1. Clôture du projet
  2. Dans la fenêtre de bienvenue Android Studio (ou Fichier> Nouveau), cliquez sur Importer un projet.

J'imagine que cela l'a forcé à réinstaller l'APK, et maintenant tout fonctionne bien.

0
Viren Mody