Ursache: buildOutput.apkData darf nicht null sein

244

Meine Android-Anwendung, die Kotlin verwendet, löst diese Ausnahme aus, wenn ich versuche, "App" im Emulator o auf meinem Mobiltelefon auszuführen. Wenn ich mein Projekt erstelle, läuft es gut und ohne Fehler.

Ich benutze:

  • SDK 28 (Android 9.0 (Pie))
  • Gradle 5.1.1
  • Gradle Plugin 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
quelle
3
Ich habe ein Ticket erstellt issuetracker.google.com/issues/129994596
Eugen Martynov
3
Ich habe das gleiche, nachdem ich Android Studio auf 3.4 aktualisiert habe
Andrew
2
Überprüfen Sie Lemberg Antwort, die für mich funktioniert, ich habe dieses Problem heute konfrontiert
Nicky
Gleiches gilt für Java (Kotlin nicht erforderlich) nach der Installation von Android Studio 3.5.
Patapoom

Antworten:

311

Klicken Sie auf Build->Clean Project

Dann Build->Make Project

Getestet auf Gradle 3.5.0-alpha3, -alpha5 und 3.4.0 (Projekt Gradle)

classpath 'com.android.tools.build:gradle:3.5.0-alpha03'
Martin Pfeffer
quelle
1
Ich kann bestätigen, dass dies auch mit der Version com.android.tools.build:gradle:3.5.0-alpha05(mit Build-> Rebuild Projectin AS)
funktioniert
1
Leider ist ein Upgrade auf Android Studio 3.5 erforderlich. Ich kann meinem Team nicht sagen, dass es für Android Studio-Updates auf einen instabilen Kanal wechseln soll.
void.pointer
8
Funktioniert auf Android Studio 3.4
Rafael
6
Beim Versuch mit AndroidStudio3.5 unter Mac OS, alle SDK aktualisiert, mit Gradle-Version com.android.tools.build:gradle:3.5.0, funktioniert diese Lösung nicht für mich
Mihodi Lushan
1
habe die ausprobiert, ja, ich bekomme diesen Fehler. @ MartinPfeffer
Mihodi Lushan
150

Für Android Studio 3.5Update. (APK signierte Ausgabe)

Schritt 1: Ich habe dieses Problem behoben, indem ich den Speicherort des Zielordners geändert habe .

Vor

c:\user\folder\project\app

Nach dem

c:\user\folder\project\apk


Für Android Studio 3.4Update.

Schritt 1: Nach dem Update von Android Studio 3.4 müssen Sie alle Abhängigkeiten, die in Ihrem Modul oder Ihrer Bibliothek verwendet wurden, auf App-Ebene hinzufügen build.gradle.

Schritt 2: Projekt bereinigen (Erstellen> Projekt bereinigen)

Schritt 3: Projekt neu erstellen (Erstellen> Projekt neu erstellen)

Jetzt wird Ihr Projekt perfekt kompiliert.

Vishrut Mavani
quelle
1
was ist das? was soll ich genau machen > Schritt 1: Nach dem Update von Android Studio 3.4 müssen Sie alle Abhängigkeiten, die in Ihrem Modul oder Ihrer Bibliothek verwendet wurden, in build.gradle auf App-Ebene hinzufügen.
Babay
1
@babay Angenommen, Sie verwenden eine Bibliothek, die die Glide-Bibliothek verwendet. Dann müssen Sie Ihre Glide-Abhängigkeit auch in build.gradle auf App-Ebene hinzufügen.
Vishrut Mavani
1
@ VishrutMavani Vielen Dank für Ihre Antwort, aber ich fand den wirklich dummen Fehler von Android Studio. Ich habe gerade den Build-Ausgabepfad geändert. Das ist. Lösung von Shuham Jain. Siehe unten seine Lösung.
James
5
Dies hat mein Problem in Android Studio v3.5 und einem Java-Projekt behoben. Dies ist ein ziemlich normales Ereignis, wenn jetzt Android-Apps erstellt werden ... (1) ein seltsamer, unverständlicher Build-Fehler auftritt (2) google it (3) Stapelüberlauf (4) scheinbar nicht verwandte Problemumgehung in einer bestimmten Reihenfolge anwenden (5) beten (6) ) es funktioniert (7) gehe zu Schritt (1)
dodgy_coder
2
Ich kann nicht glauben, dass die funktionierende Lösung für dieses Problem tatsächlich "Ändern Sie den Zielordner" ist. Aber es ist! ¯ \ _ (ツ) _ / ¯
mkasberg
138

FÜR Android Studio 3.5 | 3.6

Debug-Builds werden ohne Fehler beendet. Während der Erstellung einer signierten APK führt der gleiche Fehler

buildOutput.apkData must not be null

Die einfache Lösung, die ich gefunden habe, ist. Während des Signierens fragt die apk nach Eingabe der Signaturanmeldeinformationen, wenn Sie zum nächsten Bildschirm navigieren, nach dem Zielordner und ändert einfach den Standardpfad.

Nehmen wir an, der aktuelle Zielpfad ist

c: \ Benutzer \ Ordner \ Projekt \ App

ändere es auf

c: \ Benutzer \ Ordner \ Projekt \

dann wird die signierte apk erfolgreich generiert.

Screenshot des Android Studio-Zielordners

Shubham Jain
quelle
5
Ich schätze Ihre Lösung sehr. Vielen Dank. Dies ist nur ein einfacher und wirklich dummer Build-Fehler von Android Studio.
James
2
Wow, du hast mir damit das Leben gerettet. Ist dies jedoch ein Fehler in Android Studio oder ist mein Projekt durcheinander?
Vijay Kumar Kanta
1
Oh mein Gott, dieses Android Studio-Upgrade auf 3.5 bringt mir viele Probleme.
Henrique Monte
1
Sehr nützlich in Android 3.5.2
CodeFluid
1
Danke & Schöne Lösung. Ich habe Android Studio aktualisiert, auch wenn dieser Fehler in Android Studio 3.6 auftritt. Diese Lösung hat mir den Tag gerettet.
Nochmals vielen
49

Ich habe diesen Fehler auch erhalten, als ich versucht habe, "Signed APK" für meine Release-Version zu generieren. Ich habe alle oben genannten Methoden ausprobiert, leider hat keine für mich funktioniert.

Was funktionierte, war zuerst die vom Debug signierte Version der App und dann erneut die Release-Version zu generieren.

Ich weiß nicht genau, was sich geändert hat oder was das ursprüngliche Problem war, aber es hat funktioniert. Ich hoffe es wird dir auch helfen, denn dieser Fehler ist ziemlich nervig ...

Kuruchy
quelle
1
In meinem Fall muss ich das erste Produktaroma apk (Debuggen, um es freizugeben) bis zum letzten Aroma (Debuggen, um es freizugeben) generieren.
Obst
3
Ja!! Es hat auch bei mir funktioniert. Vielen Dank. Ich weiß nicht warum, aber es sieht aus wie ein Fehler.
Doongsil
3
unter AndroidStudio3.5 unter Mac OS, alle SDK aktualisiert, mit Gradle-Version com.android.tools.build:gradle:3.5.0, funktioniert diese Lösung nicht für mich
Mihodi Lushan
1
In meinem Fall: AndroidStudio3.5, Bundle (s) / apk (s) erstellen => apk (s) erstellen und dann Signed APK
solo
1
Es ist verrückt, aber diese Lösung funktioniert - ich verstehe nicht warum. Android Studio 3.5, Windows
cVoronin
22

Das Bereinigen des Projekts hat mir nicht geholfen, aber das manuelle Löschen aller automatisch generierten Build- Ordner in allen Modulen hat geholfen. Geben Sie hier die Bildbeschreibung ein

Roman Nazarevych
quelle
Dies entspricht der Reinigung des Projekts.
Devgianlu
4
Nein, versuchen Sie nicht, das Projekt von Android Studio zu bereinigen und dann im App-Verzeichnis nach buildVerzeichnissen in einem beliebigen Datei-Explorer zu suchen. Sie werden feststellen, dass einige Dateien noch dort verbleiben.
Roman Nazarevych
In meinem Fall hatte ich mehrere Varianten, es funktionierte, nachdem ich alle Build-Ordner zusammen mit Flavor-spezifischen Ordnern gelöscht hatte. Nachdem ich Ordner gelöscht hatte, musste ich das Projekt schließen und erneut öffnen, damit es funktioniert
Hari
Beim Versuch mit AndroidStudio3.5 unter Mac OS, alle SDK aktualisiert, mit Gradle-Version com.android.tools.build:gradle:3.5.0, funktioniert diese Lösung nicht für mich
Mihodi Lushan
18

Aktualisierung auf Android Studio 3.4.? Ich verstehe die Nachricht

Ursache: buildOutput.apkData darf nicht null sein

Auf der Suche nach einer Antwort fand ich das Verfahren:

Build -> Clean Project

aber es hat nicht funktioniert, ich weiß, dass dieses Verfahren den Inhalt in das /buildVerzeichnis löscht, aber meiner Erfahrung nach funktioniert es nicht in allen Fällen, also habe ich den "rohen" Weg versucht und das Verzeichnis gelöscht:

/app/build/ 

dann habe ich das projekt neu aufgebaut und es hat funktioniert.

Jorgesys
quelle
2
Das hat bei mir funktioniert, aber ich musste auch alle <flavor>/<buildConfig>Verzeichnisse entfernen (es geht um output.jsonDateien in ihnen). Clean projectallein hat das Problem nicht gelöst.
Javaxian
11

Ich habe versucht , über mehrere Lösungen , aber nichts ist passiert dann fand ich diese diese und für mich gearbeitet

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

Jetzt kann ich apk generieren

Rohan Pawar
quelle
9

Alle Lösungen haben bei mir nicht funktioniert

Android Studio V 3.5

Android Gradle Plugin V 3.4.2

Gradle Version V 5.1.1

  1. Reinigen Sie das Projekt
  2. Starten Sie Android Studio + Ungültige Caches neu
  3. Löschen Sie den Ordner zum Erstellen, Debuggen und Freigeben
  4. Projekt machen
  5. Generieren Sie signierte APK

Referenz

Qays Dwekat
quelle
7

Ich habe viele Dinge versucht, um das Problem zu lösen, aber nichts hat geholfen. Ich erhalte diesen Fehler, wenn ich versuche, eine signierte apk zu generieren.

Ein Downgrade auf ältere Versionen von Android Studio hat geholfen (3.4.2), dies ist jedoch nicht die Lösung.

Die Funktion 'Projekt bereinigen' in AS bereinigt nicht den Ort, an dem Ihre generierte apk erstellt wurde, und es gibt eine Datei, die möglicherweise die gesamte Prozedur blockiert: output.json

Versuchen Sie, output.json aus ... / app / projectname / release / output.json zu entfernen

TheScriptan
quelle
5

Ich habe Android Studio 3.5 Beta 2 verwendet und hatte genau den gleichen Fehler, jedoch nur bei meinem Release-Build. Nachdem ich alle anderen Lösungen ausprobiert hatte, die ich gefunden hatte, konnte ich nur wieder kompilieren, indem ich zu Android Studio 3.4 zurückkehrte.

Ampere
quelle
Diese "Lösung" hat auch bei mir funktioniert. Downgrade auf AS 3.4.2, Download hier: developer.android.com/studio/archive und Änderung von 3.5.0 auf: classpath 'com.android.tools.build:gradle:3.4.2'
Geladen
4

Für mich geht das:

  1. Löschen Sie den Build-Ordner manuell aus Ihrem Projekt.

  2. Geben Sie im Terminal von Android Studio diesen Befehl ein

wenn Windows-Benutzer

gradlew clean build

wenn Linux-Benutzer

./gradlew clean build
Abhishek Garg
quelle
1
Beim Versuch mit AndroidStudio3.5 unter Mac OS, alle SDK aktualisiert, mit Gradle-Version com.android.tools.build:gradle:3.5.0, funktioniert diese Lösung nicht für mich
Mihodi Lushan
4

Dieses Problem tritt normalerweise auf, wenn Sie mehrere Android Studio-Fenster mit unterschiedlichen Projekten ausführen.

Die Lösung ist

  • Wählen Sie Projekt als Löschen .gradle und erstellen Sie Ordner
  • als das Projekt zu reinigen und neu aufzubauen.

Bitte siehe Screenshot im Anhang

Bitte siehe Screenshot im Anhang

Suresh Maidaragi
quelle
Beim Versuch mit AndroidStudio3.5 unter Mac OS, alle SDK aktualisiert, mit Gradle-Version com.android.tools.build:gradle:3.5.0, funktioniert diese Lösung nicht für mich
Mihodi Lushan
Können Sie versuchen, Datei> Caches ungültig machen / neu starten, nachdem automatisch generierte Dateien gelöscht wurden. Gradle und Build @MihodiHasanLushan
Suresh Maidaragi
4

Ändern Sie einfach den Apk-Release- / Debug-Speicherort .

EX:

/home/sanaebadi/Desktop

Nach der veränderung :

/home/sanaebadi/apk
Sana Ebadi
quelle
3

Die Lösung für mich war, alle Dateien und Ordner aus dem apk-Ausgabeordner zu löschen. Ich hatte dieses Problem beim Erstellen einer signierten Apk für eine "Produktions" -Variante und der output.jsonim "Feature" -Ausgabeordner verursachte Problem verursacht das Problem -> Android Studio 3.6 Canary 7zeigte mir die richtige Fehlermeldung. Es funktioniert jetzt auch für AS 3.5 Stable mit Gradle Plugin 3.5.0.

3dmg
quelle
3

Alle Lösungen haben bei mir nicht funktioniert
In meinem Fall von AndroidStudio 3.4+ Update auf 3.5.
Und schließlich löse ich es, indem ich 'Zielordner' in das Detailbild "app / build / output / apk"
ändere

Schwimmbad
quelle
2

Die einzige Lösung, die für mich funktioniert, ist die Verwendung in meinem Root-Gradle

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

Was ich versucht habe: - Alle Build-Ordner manuell löschen - Cache ungültig machen, aber keines davon funktioniert

PS: Ich benutze Android Studio 3.5 übrigens

Update:

Genau wie bei @Vishrut Mavani funktioniert das Ändern des Zielordners Ihrer Release-Version

nur niemand
quelle
2

Normalerweise tritt dieses Problem beim Aktualisieren von Android Studio V3.4 auf V3.5 auf. Versuchen Sie , zu löschen debug/output.jsonund release/output.jsonDateien.

Versuchen Sie dann diese Schritte:

Schritt 1: Projekt bereinigen (Erstellen> Projekt bereinigen)

Schritt 2: Projekt neu erstellen (Erstellen> Projekt neu erstellen)

Masoud Mokhtari
quelle
2

Ich habe Android Studio 3.5.1. Für mich sind unten Schritte gearbeitet

  1. Datei -> Caches ungültig machen / neu starten
  2. Klicken Sie nach dem Neustart von Android Studio auf Erstellen -> Projekt bereinigen
  3. Dann Erstellen -> Projekt neu erstellen
Sachin Tanpure
quelle
1

In meinem Fall war das Erstellen und Starten eines Projekts mit verschiedenen Build-Konfigurationen erfolgreich. Das Generieren von signierten apk Cause: buildOutput.apkData must not be nulllöst jedoch einen Fehler aus. Andererseits wurde apk generiert und Build Output schaltet die Ansicht um BUILD SUCCESSFUL. Die manuelle Installation endet mit einer Meldung App not installed. Mein Fehler war mit compileSdkVersion 'android-P'und nach dem Wechsel compileSdkVersion 28geht alles gut.

Stanislav Bondar
quelle
1

Ich habe alle Lösungen ausprobiert und keiner von ihnen hat geholfen! Nach vielen Versuchen habe ich es endlich herausgefunden. Befolgen Sie einfach die Tipps:

  1. Kopieren Sie Ihren Signatur-Tastenanschlag (den Sie zum Freigeben verwenden) nach innen yourProject/app/
  2. gradle.properties (Werte ändern, die sich auf Ihren eigenen Schlüssel beziehen):
    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. App-Ebene build.gradle (innerhalb von 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. build.gradle auf App-Ebene (innerhalb von buildTypes):
    release {
        manifestPlaceholders = [analytics_deactivated: "false"]
        minifyEnabled true
        signingConfig signingConfigs.release
        useProguard true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    5. Endlich dieser Befehl:

Mac: ./gradlew clean assemble_YOUR_FAVOR_Release

Sieg: gradlew clean assemble_YOUR_FAVOR_Release

Wo _YOUR_FAVOR_ist Ihr optionaler Gefallen? Wenn Sie keinen Gefallen verwenden, verwenden Sie einfach assembleReleasestattassemble_YOUR_FAVOR_Release

AlirezaXX
quelle
1

Dieses Problem tritt nach dem Update meines Android Studio v3.4 auf v3.5 auf. Jetzt funktioniert es einwandfrei

Ich habe dieses Problem behoben, indem ich die Dateien debug / output.json und release / output.json gelöscht habe

Android Studio 3.5 compilesdkVersion 28

apk generieren arbeiten

Pradeep P.
quelle
1

Ich war auch über den gleichen Fehler verärgert. Aber das Ändern meines signierten apk-Ziels von c / users / project / app in c / users / project hat bei mir funktioniert.

Sarthak Sharma
quelle
1

1- Löschen Sie alle generierten App-Bundles (.aab) und APKs für alle Varianten.

2- Löschen Sie den Build-Ordner

3- Projekt reinigen

Islam Assi
quelle
1

Löschen Sie manuell alle vorhandenen Build-Varianten-Ordner sowie den Build-Ordner im Projektordner, der für mich funktioniert hat.

Thamilvanan
quelle
0

Generieren Sie signierte APKs für das Debuggen . Anschließend können Sie signierte APKs für die Freigabe generieren .

Dita Aji Pratama
quelle
0

Die Lösung :-

1- Build -> Clean Projecthat nicht geholfen

2- Build -> Make Projecthat nicht geholfen

3- Neustart Android Studio hat nicht geholfen

4- Entfernen Sie den Build-Ordner manuell aus appund projecthaben Sie nicht geholfen

Die einzige Lösung für mich war, alle alten Builds aus dem Zielordner zu entfernen

Atef Farouk
quelle
-1

Scheint, als würde das Problem durch Bereinigen des Projekts behoben, aber für mich hat es so funktioniert.

Datei-> Projekt mit Gradle-Dateien synchronisieren.

Brahmy Adigopula
quelle