webentwicklung-frage-antwort-db.com.de

Ursache: buildOutput.apkData darf nicht null sein

Meine Android Anwendung, die Kotlin verwendet, löst diese Ausnahme aus, wenn ich versuche, 'App' im Emulator o auf meinem Handy 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)
        ...
233
jzelar

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'
291
Martin Pfeffer

Für Android Studio 3.5 Update. (APK signiertes Problem)

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

Vor

c:\user\folder\project\app

Nach dem

c:\user\folder\project\apk


Für Android Studio 3.4 Update.

Schritt 1 : Nach dem Update 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.

142
Vishrut Mavani

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

(Android studio destination folder screenshot

119
Shubham Jain

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

49
Kuruchy

Das Bereinigen des Projekts hat mir nicht geholfen, aber das manuelle Löschen aller automatisch generierten Build-Ordner in allen Modulen hat geholfen. (enter image description here

21

Aktualisierung auf Android Studio 3.4.?, ich erhalte 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 diese Prozedur den Inhalt in das Verzeichnis /build 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.

18
Jorgesys

Ich habe oben mehrere Lösungen ausprobiert, aber nichts ist passiert, dann habe ich diese diese gefunden und für mich gearbeitet

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

Jetzt kann ich apk generieren

8
Rohan Pawar

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. Neustart Android Studio + Caches ungültig machen
  3. Löschen Sie den Ordner zum Erstellen, Debuggen und Freigeben
  4. Projekt machen
  5. Generieren Sie signierte APK

Referenz

8
Qays Dwekat

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.

Das Downgrade auf ältere Versionen von Android Studio half (3.4.2) hat funktioniert, 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

7
TheScriptan

Ich habe Android Studio 3.5 Beta 2) verwendet und hatte genau den gleichen Fehler, jedoch nur bei meinem Release-Build. Nachdem ich jede andere gefundene Lösung ausprobiert hatte, konnte ich sie nur erneut kompilieren zurück zu Android Studio 3.4.

5
amp

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
4
Abhishek Garg

Dieses Problem tritt normalerweise auf, wenn Sie mehrere Android Studio-Fenster mit verschiedenen 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

(please ref screen shot attached

4

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

EX:

/home/sanaebadi/Desktop

nach der veränderung :

/home/sanaebadi/apk
4
sana ebadi

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 ein "Produktions" -Geschmack und das output.json im Ausgabeordner "feature" verursacht das Problem -> Android Studio 3.6 Canary 7 zeigte mir die richtige Fehlermeldung. Es funktioniert jetzt auch für AS 3.5 Stable mit Gradle Plugin 3.5.0.

3
3dmg

Ich habe Android Studio 3.5.1. Für mich werden die folgenden Schritte ausgeführt

  1. Datei -> Caches ungültig machen/neu starten
  2. Nach dem Neustart von Android Studio) klicken Sie auf Build -> Clean project
  3. Dann Erstellen -> Projekt neu erstellen
2
Sachin Tanpure

die einzige Lösung, die für mich funktioniert, ist die Verwendung in meinem Wurzelgradle

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

2
justnoone

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

Versuchen Sie dann diese Schritte:

Schritt 1 : Projekt bereinigen (Erstellen> Projekt bereinigen)

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

2
Masoud Mokhtari

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

2
pool

Ich habe versucht alle Lösungen 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) in 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-Level build.gradle (in 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. app-Level build.gradle (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 assembleRelease anstelle von assemble_YOUR_FAVOR_Release

1
AlirezaXX

In meinem Fall war das Erstellen und Starten eines Projekts mit verschiedenen Build-Konfigurationen erfolgreich. Aber das Generieren einer signierten apk löst den Fehler Cause: buildOutput.apkData must not be null andererseits wurde apk generiert und Build Output-Umschaltansicht druckt BUILD SUCCESSFUL. Die manuelle Installation endet mit der Meldung App not installed. Mein Fehler war compileSdkVersion 'Android-P' und nach dem Wechsel zu compileSdkVersion 28 Alles wird Gut.

1

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

1
Sarthak Sharma

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

1
Thamilvanan

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

1
Islam Assi

Generieren Sie eine signierte APK für Debug, und dann können Sie eine signierte APK für Release generieren.

0

Dieses Problem tritt nach dem Update von my 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

0
Pradeep P