Causa: buildOutput.apkData non deve essere nullo


245

La mia applicazione Android che usa Kotlin lancia questa eccezione quando provo a eseguire 'app' nell'emulatore o sul mio cellulare. Quando costruisco il mio progetto, funziona bene, senza errori.

Sto usando:

  • SDK 28 (Android 9.0 (Pie))
  • Grado 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)
        ...


3
Ho lo stesso dopo aver aggiornato Android Studio a 3.4
Andrew

2
Controlla la risposta di Lemberg che funziona per me, ho affrontato quel problema oggi
Nicky,

Lo stesso vale per Java (non necessario Kotlin) dopo l'installazione di Android Studio 3.5.
Patapoom,

Risposte:


312

Fai clic su Build->Clean Project

Quindi Build->Make Project

Testato su gradi 3.5.0-alpha3, -alpha5 e 3.4.0 (gradi del progetto)

classpath 'com.android.tools.build:gradle:3.5.0-alpha03'

1
Posso confermare che funziona anche con la versione com.android.tools.build:gradle:3.5.0-alpha05(con Build-> Rebuild Projectin AS)
kikoso

1
Purtroppo richiede l'aggiornamento ad Android Studio 3.5, non posso dire al mio team di passare a un canale instabile per gli aggiornamenti di Android Studio.
void.pointer

8
Funziona su Android Studio 3.4
Rafael,

6
provando su AndroidStudio3.5 su Mac OS, tutto sdk aggiornato, usando la versione gradle com.android.tools.build:gradle:3.5.0, questa soluzione non funziona per me
Mihodi Lushan

1
provato quelli, sì, sto ricevendo questo errore. @MartinPfeffer
Mihodi Lushan,

151

Per l' 3.5aggiornamento di Android Studio . (Problema firmato APK)

Passaggio 1: ho risolto questo problema modificando la posizione della cartella di destinazione .

Prima

c:\user\folder\project\app

Dopo

c:\user\folder\project\apk


Per l' 3.4aggiornamento di Android Studio .

Passaggio 1: dopo l'aggiornamento di Android Studio 3.4 è necessario aggiungere tutta la dipendenza utilizzata nel modulo o nella libreria a livello di app build.gradle.

Step 2: Clean Project (Build> Clean Project)

Passaggio 3: Ricostruisci progetto (Genera> Ricostruisci progetto)

Ora, il tuo progetto verrà compilato perfettamente.


1
Cos'è quello? cosa dovrei fare esattamente? > Passaggio 1: dopo l'aggiornamento di Android Studio 3.4 è necessario aggiungere tutta la dipendenza utilizzata nel modulo o nella libreria nel build.gradle a livello di app.
babay

1
@babay Supponiamo che tu stia utilizzando una libreria che utilizza la libreria Glide. Quindi devi aggiungere la tua dipendenza Glide anche nel tuo build.gradle a livello di app.
Vishrut Mavani,

1
@VishrutMavani Grazie per la risposta, ma ho trovato l'errore davvero stupido di Android Studio. Ho appena cambiato il percorso di output della build. Questo è. Soluzione di Shuham Jain. Vedi sotto la sua soluzione.
James,

5
Questo risolto il mio problema con Android Studio v3.5 e un progetto Java. Questo è un evento abbastanza standard ogni volta che si creano app Android ora ... (1) si ottiene uno strano errore di compilazione incomprensibile (2) google it (3) stack overflow (4) applicare una soluzione apparentemente non correlata in un ordine specifico (5) pray (6) ) funziona (7) vai al passaggio (1)
dodgy_coder

2
Non riesco a credere che la soluzione funzionante a questo problema sia in realtà "Cambia la cartella di destinazione". Ma è! ¯ \ _ (ツ) _ / ¯
mkasberg

138

PER Android Studio 3.5 | 3.6

le build di debug terminano senza errori. Durante la creazione di un .apk firmato porta allo stesso errore

buildOutput.apkData must not be null

la soluzione semplice che ho trovato è. Durante la firma dell'apk dopo aver inserito le credenziali di firma quando si passa alla schermata successiva, verrà richiesta la cartella di destinazione semplicemente cambiando il percorso predefinito.

Supponiamo che sia il percorso di destinazione corrente

c: \ user \ cartella \ progetto \ app

cambiarlo in

cartella c: \ progetto \ user \ \

quindi genererà l'apk firmato correttamente.

Schermata della cartella di destinazione dello studio Android


5
Apprezzo molto la tua soluzione. Grazie. Questo è solo un errore di compilazione semplice e davvero stupido di Android Studio.
James,

2
Wow, mi hai salvato la vita con questo. Tuttavia, si tratta di un bug in Android Studio o il mio progetto è incasinato?
Vijay Kumar Kanta,

1
OMG, questo aggiornamento di Android Studio alla 3.5 porta molti problemi per me.
Henrique Monte,

1
Molto utile in Android 3.5.2
CodeFluid

1
Grazie e bella soluzione. Ho aggiornato Android Studio anche questo errore si verifica in Android Studio 3.6. Questa soluzione mi ha salvato la giornata. Grazie ancora
Divakar Murugesh il

49

Inoltre, ho riscontrato questo errore durante il tentativo di "Genera APK firmato" per la mia versione di rilascio. Ho provato tutti i metodi di cui sopra, purtroppo nessuno ha funzionato per me.

Ciò che ha funzionato è stato generare prima la versione firmata di debug dell'app, quindi generare nuovamente quella di rilascio.

Non so cosa sia esattamente cambiato o quale fosse il problema originale, ma ha funzionato. Spero che possa aiutarti anche tu, perché questo errore è abbastanza fastidioso ...


1
Nel mio caso ho bisogno di generare l'apk del primo prodotto (debug per il rilascio) per l'ultimo sapore (debug per il rilascio).
Fruit

3
Sì!! Ha funzionato anche per me. Grazie. Non so perché ma sembra un bug.
Doongsil,

3
provando su AndroidStudio3.5 su Mac OS, tutto sdk aggiornato, usando la versione gradle com.android.tools.build:gradle:3.5.0, questa soluzione non funziona per me
Mihodi Lushan

1
Nel mio caso: AndroidStudio3.5, Build bundle (s) / apk (s) => Build apk (s), quindi Genera APK firmato
solo

1
È pazzesco, ma questa soluzione funziona - non capisco perché. Android Studio 3.5, Windows
cVoronin,

22

La pulizia del progetto non mi ha aiutato, ma ha aiutato l'eliminazione manuale di tutte le cartelle di generazione generate automaticamente in tutti i moduli. inserisci qui la descrizione dell'immagine


Questo è l'equivalente di pulizia del progetto.
devgianlu,

4
No, non è così, prova a pulire il progetto da Android Studio e quindi controlla la directory dell'app per le builddirectory in qualsiasi esploratore di file, vedrai che alcuni file sono ancora lasciati lì.
Roman Nazarevych,

Nel mio caso ho avuto molteplici gusti, ha funzionato dopo aver eliminato tutte le cartelle di compilazione insieme alle cartelle specifiche di Sapore. Dopo aver eliminato le cartelle, ho dovuto chiudere il progetto e riaprirlo per farlo funzionare
Hari,

provando su AndroidStudio3.5 su Mac OS, tutto sdk aggiornato, usando la versione gradle com.android.tools.build:gradle:3.5.0, questa soluzione non funziona per me
Mihodi Lushan

18

Aggiornamento ad Android Studio 3.4.? , ricevo il messaggio

Causa: buildOutput.apkData non deve essere nullo

in cerca di una risposta ho trovato la procedura:

Build -> Clean Project

ma non ha funzionato, so che questa procedura eliminerà il contenuto nella /builddirectory ma per la mia esperienza non funziona in tutti i casi, quindi ho provato il modo "grezzo", eliminando la directory:

/app/build/ 

poi ho ricostruito il progetto e ha funzionato.


2
Questo ha funzionato per me, ma ho dovuto anche rimuovere tutte le <flavor>/<buildConfig>directory (si tratta di output.jsonfile in esse). Clean projectda solo non ha risolto il problema.
javaxian,

11

Ho provato sopra molteplici soluzioni, ma nulla è accaduto, allora ho trovato questo questo e ha lavorato per me

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

Ora sono in grado di generare apk


9

Tutte le soluzioni non hanno funzionato con me

Android Studio V 3.5

Plug-in Android Gradle V 3.4.2

Gradle Versione V 5.1.1

  1. Pulisci il progetto
  2. Riavvia Android Studio + Cache non valide
  3. Elimina la cartella build, debug e release
  4. Crea progetto
  5. Genera APK firmato

Riferimento


7

Ho provato molte cose per risolvere il problema, ma nulla mi ha aiutato. Ottengo questo errore quando provo a generare un apk firmato.

Il downgrade a versioni precedenti di Android Studio ha aiutato (3.4.2) a funzionare, ma questa non è la soluzione.

La funzione "Pulisci progetto" in AS non pulisce il luogo in cui viene creato l'apk generato e esiste un file che potrebbe bloccare l'intera procedura: output.json

Prova a rimuovere output.json da ... / app / projectname / release / output.json


5

Stavo usando Android Studio 3.5 beta 2 e stavo avendo lo stesso identico errore ma solo sulla mia build di rilascio. Dopo aver provato tutte le altre soluzioni che ho trovato, l'unico modo in cui sono stato in grado di compilare di nuovo era tornare ad Android Studio 3.4.


Questa "soluzione" ha funzionato anche per me. Esegui il downgrade a AS 3.4.2, scarica qui: developer.android.com/studio/archive e passa dalla 3.5.0 a: classpath 'com.android.tools.build:gradle:3.4.2'
Loadeed

4

Per me funziona:

  1. elimina manualmente la cartella di build dal tuo progetto.

  2. nel terminale di Android Studio digitare questo comando

se utente di Windows

gradlew clean build

se utente Linux

./gradlew clean build

1
provando su AndroidStudio3.5 su Mac OS, tutto sdk aggiornato, usando la versione gradle com.android.tools.build:gradle:3.5.0, questa soluzione non funziona per me
Mihodi Lushan

4

Questo problema si verifica in genere quando si eseguono più finestre di studio Android con progetti diversi.

La soluzione è

  • scegli progetto piuttosto che eliminare .gradle e crea cartelle
  • di pulire e ricostruire il progetto.

si prega di fare riferimento alla schermata allegata

si prega di fare riferimento alla schermata allegata


provando su AndroidStudio3.5 su Mac OS, tutto sdk aggiornato, usando la versione gradle com.android.tools.build:gradle:3.5.0, questa soluzione non funziona per me
Mihodi Lushan

Puoi provare File> Cache non valide / Riavvia dopo aver eliminato i file generati automaticamente .gradle e build @MihodiHasanLushan
Suresh Maidaragi

4

Basta cambiare la posizione di rilascio / debug di Apk .

EX:

/home/sanaebadi/Desktop

dopo il cambiamento:

/home/sanaebadi/apk

3

La soluzione per me era eliminare tutti i file e le cartelle dalla cartella di output apk. Ho avuto questo problema durante la creazione di un apk firmato per un sapore di "produzione" e la output.jsoncartella di output nella "caratteristica" causa il problema -> Android Studio 3.6 Canary 7mi ha mostrato il messaggio di errore corretto. Ora funziona anche con AS 3.5 stabile con Gradle Plugin 3.5.0.


3

Tutte le soluzioni non hanno funzionato con me
Nel mio caso da AndroidStudio 3.4+ aggiornamento alla 3.5.
E infine lo risolvo modificando "Cartella di destinazione" nella foto di dettaglio "app / build / output / apk"


2

l'unica soluzione che funziona per me è usare nel mio grado radice

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

quello che ho provato: - cancella manualmente tutte le cartelle di build - invalida la cache ma nessuna di queste funziona

PS: sto usando Android Studio 3.5 BTW

Aggiornare :

proprio come @Vishrut Mavani, cambiare la cartella di destinazione della versione di rilascio è un lavoro


2

Di solito questo problema si verifica durante l'aggiornamento di Android Studio V3.4 a V3.5. Prova a eliminare debug/output.jsone release/output.jsonfile.

Quindi prova questi passaggi:

Step 1: Clean Project (Build> Clean Project)

Passaggio 2: Ricostruisci progetto (Genera> Ricostruisci progetto)


2

Ho Android Studio 3.5.1. Per me di seguito sono stati eseguiti i passaggi

  1. File -> Cache / riavvio non validi
  2. Dopo aver riavviato Android Studio, fai clic su Build -> Clean project
  3. Quindi Build -> Rebuild Project

1

Nel mio caso, compilare e lanciare un progetto con diverse configurazioni di configurazione ha avuto successo. Ma la generazione dell'apk firmato genera un errore Cause: buildOutput.apkData must not be nulldall'altro lato è stato generato l'apk e Build Output attiva / disattiva le stampe delle viste BUILD SUCCESSFUL. L'installazione manuale termina con un messaggio App not installed. La mia colpa era usare compileSdkVersion 'android-P'e dopo aver cambiato compileSdkVersion 28tutto va bene.


1

Ho provato tutte le soluzioni e nessuna di esse mi ha aiutato! finalmente dopo molti tentativi, l'ho capito, basta seguire i suggerimenti:

  1. copia la sequenza di tasti della firma (che usi per rilasciare) all'interno yourProject/app/
  2. gradle.properties (modifica i valori relativi alla propria chiave):
    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. build.gradle a livello di app (all'interno di 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 a livello di app (all'interno di buildTypes):
    release {
        manifestPlaceholders = [analytics_deactivated: "false"]
        minifyEnabled true
        signingConfig signingConfigs.release
        useProguard true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    5. finalmente questo comando:

Mac: ./gradlew clean assemble_YOUR_FAVOR_Release

vincere: gradlew clean assemble_YOUR_FAVOR_Release

dov'è il _YOUR_FAVOR_tuo favore opzionale, se non stai usando alcun favore, usa semplicemente assembleReleaseinvece diassemble_YOUR_FAVOR_Release


1

Questo problema si verifica dopo l'aggiornamento del mio studio Android v3.4 alla v3.5 Ora funziona correttamente

Ho risolto questo problema eliminando i file debug / output.json e release / output.json

Android Studio 3.5 compilesdkVersion 28

apk generando lavoro


1

Sono stato anche infastidito dallo stesso bug. Ma cambiare la mia destinazione apk firmata da c / users / project / app a c / users / project ha funzionato per me.


1

1- Elimina tutti i pacchetti di app generati (.aab) e gli APK per tutte le varianti.

2- Elimina la cartella di generazione

3- progetto pulito


1

Elimina manualmente tutte le cartelle delle varianti di build esistenti e anche la cartella di build nella cartella del progetto ha funzionato per me.


0

Genera APK firmato per il debug e quindi puoi generare APK firmato per il rilascio .


0

La soluzione :-

1- Build -> Clean Projectnon ha aiutato

2- Build -> Make Projectnon ha aiutato

3- riavviare Android Studio non ha aiutato

4- Rimuovere manualmente la cartella Build da appe projectnon ha aiutato

l'unica soluzione per me era rimuovere tutte le vecchie build dalla cartella di destinazione


-1

Sembra che la pulizia del progetto possa risolvere il problema, ma per me ha funzionato in questo modo.

File-> sincronizza progetto con file gradle.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.