Cause: buildOutput.apkData ne doit pas être nul

245

Mon application Android utilisant Kotlin lève cette exception lorsque j'essaie d'exécuter «app» dans l'émulateur o de mon téléphone portable. Lorsque je crée mon projet, il fonctionne bien, sans erreur.

J'utilise:

  • SDK 28 (Android 9.0 (Pie))
  • Gradle 5.1.1
  • Plugin Gradle 3.5.0-alpha03
  • Kotlin 1.3.10
  • Java 1.8.0_151
  • OSX 10.13.2
    org.gradle.internal.exceptions.LocationAwareException: buildOutput.apkData must not be null
        at org.gradle.initialization.exception.DefaultExceptionAnalyser.transform(DefaultExceptionAnalyser.java:99)
        at org.gradle.initialization.exception.DefaultExceptionAnalyser.collectFailures(DefaultExceptionAnalyser.java:65)
        at org.gradle.initialization.exception.MultipleBuildFailuresExceptionAnalyser.transform(MultipleBuildFailuresExceptionAnalyser.java:39)
        at org.gradle.initialization.exception.StackTraceSanitizingExceptionAnalyser.transform(StackTraceSanitizingExceptionAnalyser.java:29)
        at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:194)
        at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:141)
        ...
    Caused by: java.lang.IllegalStateException: buildOutput.apkData must not be null
        at com.android.build.gradle.internal.ide.EarlySyncBuildOutput$Companion$load$2.invoke(EarlySyncBuildOutput.kt:103)
        at com.android.build.gradle.internal.ide.EarlySyncBuildOutput$Companion$load$2.invoke(EarlySyncBuildOutput.kt:67)
        at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:174)
        at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:691)
        at kotlin.sequences.SequencesKt___SequencesKt.toMutableList(_Sequences.kt:721)
        at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:712)
        ...
jzelar
la source
3
J'ai créé un ticket issuetracker.google.com/issues/129994596
Eugen Martynov le
3
J'ai le même après avoir mis à jour Android Studio vers la 3.4
Andrew
2
Vérifiez la réponse de Lemberg qui fonctionne pour moi, j'ai rencontré ce problème aujourd'hui
Nicky
Même chose pour Java (pas nécessaire Kotlin) après l'installation d'Android Studio 3.5.
Patapoom

Réponses:

312

Cliquez sur Build->Clean Project

Alors Build->Make Project

Testé sur gradle 3.5.0-alpha3, -alpha5 et 3.4.0 (project gradle)

classpath 'com.android.tools.build:gradle:3.5.0-alpha03'
Martin Pfeffer
la source
1
Je peux confirmer que cela fonctionne aussi avec la version com.android.tools.build:gradle:3.5.0-alpha05(avec Build-> Rebuild Projectdans AS)
kikoso
1
Malheureusement, cela nécessite une mise à niveau vers Android Studio 3.5, je ne peux pas dire à mon équipe de passer à un canal instable pour les mises à jour d'Android Studio.
void.pointer
8
Fonctionne sur Android Studio 3.4
Rafael
6
essayer AndroidStudio3.5 sur Mac OS, tous les sdk mis à jour, en utilisant la version gradle com.android.tools.build:gradle:3.5.0, cette solution ne fonctionne pas pour moi
Mihodi Lushan
1
essayé ceux-ci, oui, je reçois cette erreur. @MartinPfeffer
Mihodi Lushan
151

Pour Android Studio 3.5Update. (Problème signé APK)

Étape 1: J'ai résolu ce problème en modifiant l' emplacement du dossier de destination.

Avant

c:\user\folder\project\app

Après

c:\user\folder\project\apk


Pour Android Studio 3.4Update.

Étape 1: Après la mise à jour d' Android Studio 3.4, vous devez ajouter toutes les dépendances utilisées dans votre module ou bibliothèque au niveau de votre application build.gradle.

Étape 2: Clean Project (Build> Clean Project)

Étape 3: Reconstruire le projet (Build> Rebuild Project)

Maintenant, votre projet se compilera parfaitement.

Vishrut Mavani
la source
1
Qu'est-ce que c'est? que dois-je faire exactement? > Étape 1: après la mise à jour d'Android Studio 3.4, vous devez ajouter toutes les dépendances utilisées dans votre module ou bibliothèque dans votre build.gradle au niveau de l'application.
babay
1
@babay Supposons que vous utilisez une bibliothèque qui utilise la bibliothèque Glide. Ensuite, vous devez également ajouter votre dépendance Glide dans votre niveau d'application build.gradle.
Vishrut Mavani
1
@VishrutMavani Merci pour votre réponse, mais j'ai trouvé l'erreur vraiment stupide du studio Android. Je viens de changer le chemin de sortie du build. C'est. Solution de Shuham Jain. Voir ci-dessous sa solution.
james
5
Cela a résolu mon problème dans Android Studio v3.5 et un projet Java. C'est un événement assez standard lorsque vous créez des applications Android maintenant ... (1) obtenez une erreur de construction incompréhensible étrange (2) google it (3) débordement de pile (4) appliquez une solution de contournement apparemment sans rapport dans un ordre spécifique (5) priez (6 ) ça marche (7) allez à l'étape (1)
dodgy_coder
2
Je ne peux pas croire que la solution de travail à ce problème soit en fait "Modifier le dossier de destination". Mais il est! ¯ \ _ (ツ) _ / ¯
mkasberg
138

POUR Android Studio 3.5 | 3,6

les versions de débogage se terminent sans aucune erreur. Lors de la création d'un .apk signé conduit à la même erreur

buildOutput.apkData must not be null

la solution simple que j'ai trouvée est. Lors de la signature de l'apk après avoir entré les informations d'identification de signature lorsque vous accédez à l'écran suivant, il vous demandera de modifier le chemin par défaut.

Supposons que le chemin de destination actuel soit

c: \ utilisateur \ dossier \ projet \ application

le changer en

c: \ utilisateur \ dossier \ projet \

alors il générera avec succès l'apk signé.

Capture d'écran du dossier de destination du studio Android

Shubham Jain
la source
5
J'apprécie vraiment votre solution. Merci. C'est simplement une erreur de construction simple et vraiment stupide d'Android Studio.
james
2
Wow, tu m'as sauvé la vie avec ça. Cependant, est-ce un bug dans Android Studio ou mon projet est-il foiré?
Vijay Kumar Kanta
1
OMG, cette mise à niveau d'Android Studio vers la 3.5 apporte beaucoup de problèmes pour moi.
Henrique Monte
1
Très utile dans Android 3.5.2
CodeFluid
1
Merci et bonne solution. J'ai mis à jour Android Studio même si cette erreur se produit dans Android Studio 3.6. Cette solution m'a sauvé la journée. Merci encore
Divakar Murugesh
49

J'obtenais également cette erreur lorsque j'essayais de "Générer un fichier APK signé" pour ma version finale. J'ai essayé toutes les méthodes ci-dessus, malheureusement aucune n'a fonctionné pour moi.

Ce qui a fonctionné, c'est de générer d'abord la version signée de débogage de l'application, puis de générer à nouveau la version finale.

Je ne sais pas exactement ce qui a changé ou quel était le problème d'origine, mais cela a fonctionné. J'espère que cela vous aidera aussi, car cette erreur est assez ennuyeuse ...

Kuruchy
la source
1
Dans mon cas, j'ai besoin de générer le premier apk de la saveur du produit (débogage pour libérer) jusqu'à la dernière saveur (débogage pour libérer).
Fruit
3
Oui!! Il a travaillé pour moi aussi. Merci. Je ne sais pas pourquoi mais ça ressemble à un bug.
Doongsil
3
essayer AndroidStudio3.5 sur Mac OS, tous les sdk mis à jour, en utilisant la version gradle com.android.tools.build:gradle:3.5.0, cette solution ne fonctionne pas pour moi
Mihodi Lushan
1
Dans mon cas: AndroidStudio3.5, Build bundle (s) / apk (s) => Build apk (s), puis Generate Signed APK
solo
1
C'est fou, mais cette solution fonctionne - je ne comprends pas pourquoi. Android Studio 3.5, Windows
cVoronin
22

Le nettoyage du projet ne m'a pas aidé, mais la suppression manuelle de tous les dossiers de génération générés automatiquement dans tous les modules a aidé. entrez la description de l'image ici

Roman Nazarevych
la source
C'est l'équivalent du nettoyage du projet.
devgianlu
4
Non, ce n'est pas le cas, essayez de nettoyer le projet à partir d'Android Studio, puis vérifiez le répertoire App pour les buildrépertoires dans n'importe quel explorateur de fichiers, vous verrez que certains fichiers sont toujours là.
Roman Nazarevych
Dans mon cas, j'avais plusieurs saveurs, cela a fonctionné une fois que j'avais supprimé tous les dossiers de construction ainsi que les dossiers spécifiques aux saveurs. Après avoir supprimé des dossiers, j'ai dû fermer le projet et le rouvrir pour le faire fonctionner
Hari
essayer AndroidStudio3.5 sur Mac OS, tous les sdk mis à jour, en utilisant la version gradle com.android.tools.build:gradle:3.5.0, cette solution ne fonctionne pas pour moi
Mihodi Lushan
18

Mise à jour vers Android Studio 3.4.? , je reçois le message

Cause: buildOutput.apkData ne doit pas être nul

à la recherche d'une réponse j'ai trouvé la procédure:

Build -> Clean Project

mais cela ne fonctionne pas, je sais que cette procédure supprimera le contenu du /buildrépertoire mais pour mon expérience, cela ne fonctionne pas dans tous les cas, j'ai donc essayé la méthode "brute" en supprimant le répertoire:

/app/build/ 

puis je reconstruis le projet et ça a marché.

Jorgesys
la source
2
Cela a fonctionné pour moi, mais j'ai également dû supprimer tous les <flavor>/<buildConfig>répertoires (il s'agit des output.jsonfichiers qu'ils contiennent). Clean projectseul n'a pas résolu le problème.
javaxian
11

J'ai essayé plusieurs solutions mais rien ne s'est passé alors j'ai trouvé ça et j'ai travaillé pour moi

    deleting debug/output.json and release/output.json solved my problem

Maintenant je peux générer apk

Rohan Pawar
la source
9

Toutes les solutions n'ont pas fonctionné avec moi

Android Studio V 3.5

Plugin Android Gradle V 3.4.2

Gradle Version V 5.1.1

  1. Nettoyer le projet
  2. Redémarrez Android Studio + Caches invalides
  3. Supprimez le dossier de génération, de débogage et de publication
  4. Faire un projet
  5. Générer un fichier APK signé

Référence

Qays Dwekat
la source
7

J'ai essayé beaucoup de choses pour résoudre le problème, mais rien n'y fait. J'obtiens cette erreur en essayant de générer un apk signé.

La mise à niveau vers des versions plus anciennes d'Android Studio a aidé (3.4.2) à fonctionner, mais ce n'est pas la solution.

La fonction 'Clean Project' dans AS ne nettoie pas l'endroit où votre apk généré est créé et il y a un fichier qui peut bloquer toute la procédure: output.json

Essayez de supprimer output.json de ... / app / projectname / release / output.json

TheScriptan
la source
5

J'utilisais Android Studio 3.5 beta 2 et j'avais exactement la même erreur, mais uniquement sur ma version. Après avoir essayé toutes les autres solutions que j'ai trouvées, la seule façon de compiler à nouveau était de revenir à Android Studio 3.4.

ampli
la source
Cette "solution" a également fonctionné pour moi. Rétrogradez vers AS 3.4.2, téléchargez ici: developer.android.com/studio/archive et passez de 3.5.0 à: classpath 'com.android.tools.build:gradle:3.4.2'
Loadeed
4

Ça marche pour moi:

  1. supprimer manuellement le dossier de construction de votre projet.

  2. dans le terminal du studio android, tapez cette commande

si l'utilisateur Windows

gradlew clean build

si utilisateur linux

./gradlew clean build
Abhishek Garg
la source
1
essayer AndroidStudio3.5 sur Mac OS, tous les sdk mis à jour, en utilisant la version gradle com.android.tools.build:gradle:3.5.0, cette solution ne fonctionne pas pour moi
Mihodi Lushan
4

Ce problème se produit généralement lorsque vous exécutez plusieurs fenêtres de studio Android avec différents projets.

La solution est

  • choisissez un projet plutôt que de supprimer .gradle et de créer des dossiers
  • que nettoyer et reconstruire le projet.

s'il vous plaît ref capture d'écran ci-jointe

s'il vous plaît ref capture d'écran ci-jointe

Suresh Maidaragi
la source
essayer AndroidStudio3.5 sur Mac OS, tous les sdk mis à jour, en utilisant la version gradle com.android.tools.build:gradle:3.5.0, cette solution ne fonctionne pas pour moi
Mihodi Lushan
Pouvez-vous essayer Fichier> Invalider les caches / Redémarrer après avoir supprimé les fichiers générés automatiquement .gradle et construit @MihodiHasanLushan
Suresh Maidaragi
4

Modifiez simplement l' emplacement de publication / débogage d'Apk .

EX:

/home/sanaebadi/Desktop

après changement:

/home/sanaebadi/apk
sana ebadi
la source
3

La solution pour moi était de supprimer tous les fichiers et dossiers du dossier de sortie apk. J'ai eu ce problème lors de la création d'une apk signée pour une saveur "production" et le output.jsondossier de sortie "fonctionnalité" provoque le problème -> Android Studio 3.6 Canary 7m'a montré le message d'erreur correct. Il fonctionne également maintenant pour AS 3.5 stable avec Gradle Plugin 3.5.0.

3dmg
la source
3

Toutes les solutions n'ont pas fonctionné avec moi
Dans mon cas, de la mise à jour AndroidStudio 3.4+ vers 3.5.
Et enfin je le résout en modifiant 'Dossier de destination' en photo de détail "app / build / outputs / apk"

bassin
la source
2

la seule solution qui fonctionne pour moi est d'utiliser mon grade racine

classpath 'com.android.tools.build:gradle:3.3.0'

ce que j'ai essayé: - effacer tous les dossiers de construction manuellement - invalider le cache mais rien de tout cela ne fonctionne

PS: j'utilise Android Studio 3.5 BTW

Mettre à jour :

tout comme @Vishrut Mavani, changer le dossier de destination de votre version finale est un travail

personne
la source
2

Habituellement, ce problème se produit lors de la mise à jour d'Android Studio V3.4 vers V3.5. Essayez de supprimer debug/output.jsonet de release/output.jsonfichiers.

Essayez ensuite ces étapes:

Étape 1: Clean Project (Build> Clean Project)

Étape 2: Reconstruire le projet (Build> Rebuild Project)

Masoud Mokhtari
la source
2

J'ai Android Studio 3.5.1. Pour moi, les étapes ci-dessous sont travaillées

  1. Fichier -> Invalider les caches / redémarrer
  2. Après le redémarrage du studio Android, cliquez sur Build -> Clean project
  3. Puis construire -> Reconstruire le projet
Sachin Tanpure
la source
1

Dans mon cas, le projet de construction et de lancement avec différentes configurations de construction a réussi. Mais générer une apk signée génère une erreur Cause: buildOutput.apkData must not be null, d'autre part, l'apk a été généré et la vue de bascule de la sortie de génération s'imprime BUILD SUCCESSFUL. L'installation manuelle se termine par un message App not installed. Ma faute était d'utiliser compileSdkVersion 'android-P'et après avoir changé pour compileSdkVersion 28tout va bien.

Stanislav Bondar
la source
1

J'ai essayé toutes les solutions et aucune n'a aidé! enfin après de nombreux essais, je l'ai compris, il suffit de suivre les conseils:

  1. copiez votre frappe de signature (que vous utilisez pour libérer) à l'intérieur yourProject/app/
  2. gradle.properties (modifiez les valeurs liées à votre propre clé):
    MYAPP_RELEASE_STORE_FILE=KEYSTROK_NAME
    MYAPP_RELEASE_KEY_ALIAS=KEY_ALIAS
    MYAPP_RELEASE_STORE_PASSWORD=R_PASS
    MYAPP_RELEASE_KEY_PASSWORD=K_PASS
    android.enableR8=true
  3. niveau de l'application build.gradle (dans Android):

    signingConfigs{
        release{
            if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                storeFile file(MYAPP_RELEASE_STORE_FILE)
                storePassword MYAPP_RELEASE_STORE_PASSWORD
                keyAlias MYAPP_RELEASE_KEY_ALIAS
                keyPassword MYAPP_RELEASE_KEY_PASSWORD
            }
        }
    }
    
    configurations {
        cleanedAnnotations
        compile.exclude group: 'org.jetbrains' , module:'annotations'
    }
    
  4. niveau de l'application build.gradle (à l'intérieur des buildTypes):
    release {
        manifestPlaceholders = [analytics_deactivated: "false"]
        minifyEnabled true
        signingConfig signingConfigs.release
        useProguard true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    5. enfin cette commande:

Mac: ./gradlew clean assemble_YOUR_FAVOR_Release

gagner: gradlew clean assemble_YOUR_FAVOR_Release

_YOUR_FAVOR_est votre faveur optionnelle, si vous n'utilisez aucune faveur, utilisez simplement assembleReleaseau lieu deassemble_YOUR_FAVOR_Release

AlirezaXX
la source
1

Ce problème se produit après la mise à jour de mon studio Android v3.4 vers v3.5 Maintenant, cela fonctionne bien

J'ai résolu ce problème en supprimant les fichiers debug / output.json et release / output.json

Android Studio 3.5 compiledkVersion 28

apk génération de travail

Pradeep P
la source
1

J'étais aussi ennuyé par le même bug. Mais changer ma destination apk signée de c / users / project / app en c / users / project a fonctionné pour moi.

Sarthak Sharma
la source
1

1- Supprimez tous les bundles d'applications générés (.aab) et APK pour toutes les variantes.

2- Supprimer le dossier de construction

3- projet propre

Islam Assi
la source
1

Supprimez manuellement tous les dossiers de variantes de build existants, ainsi que le dossier de build du dossier de projet qui a fonctionné pour moi.

Thamilvanan
la source
0

Générez un fichier APK signé pour le débogage , puis vous pouvez générer un fichier APK signé pour publication .

Dita Aji Pratama
la source
0

La solution :-

1- Build -> Clean Projectn'a pas aidé

2- Build -> Make Projectn'a pas aidé

3- Redémarrer Android Studio n'a pas aidé

4- Supprimer manuellement le dossier Build de appet projectn'a pas aidé

la seule solution pour moi était de supprimer toutes les anciennes versions du dossier de destination

Atef Farouk
la source
-1

Semble nettoyer le projet peut résoudre le problème, mais pour moi, cela a fonctionné comme ça.

Fichier-> projet de synchronisation avec les fichiers gradle.

brahmy adigopula
la source