Causa: buildOutput.apkData não deve ser nulo


244

Meu aplicativo Android usando Kotlin está lançando essa exceção quando tento executar 'app' no emulador o no meu celular. Quando construo meu projeto, ele roda bem, sem erros.

Estou usando:

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


3
Eu tenho o mesmo depois que eu atualizei Estúdio Android para 3,4
Andrew

2
Verifique Lemberg resposta que funciona para mim, eu enfrentei essa questão hoje
Nicky

O mesmo para Java (não é necessário Kotlin) após a instalação do Android Studio 3.5.
Patapoom 28/08/19

Respostas:


311

Clique em Build->Clean Project

Então Build->Make Project

Testado no gradle 3.5.0-alpha3, -alpha5 e 3.4.0 (gradle do projeto)

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

1
Posso confirmar isso está funcionando bem com a versão com.android.tools.build:gradle:3.5.0-alpha05(com Build-> Rebuild Projectna AS)
kikoso

1
Infelizmente, é necessário atualizar para o Android Studio 3.5. Não posso dizer à minha equipe para mudar para um canal instável para atualizações do Android Studio.
precisa saber é o seguinte

8
Funciona no Android Studio 3.4
Rafael

6
tentando em AndroidStudio3.5 no Mac OS, todos SDK atualizado, usando a versão Gradle com.android.tools.build:gradle:3.5.0, esta solução não está funcionando para mim
Mihodi Lushan

1
tentei aqueles, sim, estou recebendo esse erro. @MartinPfeffer
Mihodi Lushan

150

Para 3.5atualização do Android Studio . (Problema com o APK assinado)

Etapa 1: resolvi esse problema modificando o local da pasta de destino .

Antes

c:\user\folder\project\app

Depois de

c:\user\folder\project\apk


Para 3.4atualização do Android Studio .

Etapa 1: após a atualização do Android Studio 3.4, você precisará adicionar toda a dependência usada no seu módulo ou biblioteca no nível do aplicativo build.gradle.

Etapa 2: Limpar projeto (Compilar> Limpar projeto)

Etapa 3: Reconstruir projeto (Compilar> Reconstruir projeto)

Agora, seu projeto será compilado perfeitamente.


1
o que é isso? o que devo fazer exatamente? > Etapa 1: após a atualização do Android Studio 3.4, você precisa adicionar toda a dependência usada no seu módulo ou biblioteca no seu build.gradle no nível do aplicativo.
babay

1
@babay Suponha que você esteja usando qualquer biblioteca que esteja usando a biblioteca Glide. Então você deve adicionar sua dependência do Glide no build.gradle no nível do aplicativo.
Vishrut Mavani

1
@VishrutMavani Obrigado pela sua resposta, mas eu encontrei o erro realmente estúpido do Android studio. Acabei de alterar o caminho de saída da compilação. Isso é. Solução de Shuham Jain. Veja abaixo a solução dele.
james

5
Isso corrigiu meu problema no Android Studio v3.5 e em um projeto Java. Essa é uma ocorrência bastante comum sempre que você cria aplicativos Android ... (1) obtém um erro de compilação incompreensível estranho (2) pesquise no google (3) estouro de pilha (4) aplique solução aparentemente não relacionada em uma ordem específica (5) ore (6) ) funciona (7), vá para a etapa (1)
dodgy_coder 27/09/19

2
Não acredito que a solução para esse problema seja realmente "Alterar a pasta de destino". Mas isso é! ¯ \ _ (ツ) _ / ¯
mkasberg

138

PARA Android Studio 3.5 | 3.6.

compilações de depuração terminam sem nenhum erro. Durante a criação de um .apk assinado, ocorre o mesmo erro

buildOutput.apkData must not be null

a solução simples que encontrei é. Durante a assinatura do apk, depois de inserir as credenciais de assinatura, quando você navegar para a próxima tela, ele solicitará a pasta de destino, basta alterar o caminho padrão.

Vamos assumir que o caminho de destino atual é

c: \ usuário \ pasta \ projeto \ aplicativo

mude para

c: \ usuário \ pasta \ projeto \

então ele gerará o apk assinado com sucesso.

Captura de tela da pasta de destino do Android studio


5
Eu realmente aprecio sua solução. Obrigado. Isso é apenas um erro de compilação simples e realmente estúpido do Android Studio.
james

2
Uau, você salvou minha vida com isso. No entanto, isso é um bug no Android Studio ou meu projeto está estragado?
Vijay Kumar Kanta

1
OMG, esta atualização do Android Studio para 3.5 traz muitos problemas para mim.
Henrique Monte

1
Muito útil no Android 3.5.2
CodeFluid 10/11/19

1
Obrigado e solução agradável. Atualizei o Android Studio mesmo que este erro ocorra no Android Studio 3.6. Esta solução salvou meu dia. Mais uma vez obrigado
Divakar Murugesh

49

Eu também estava recebendo esse erro ao tentar "Gerar APK assinado" para a minha versão de lançamento. Eu tentei todos os métodos acima, infelizmente nenhum funcionou para mim.

O que funcionou foi gerar primeiro a versão assinada de depuração do aplicativo e, em seguida, gerar novamente a versão de lançamento.

Não sei o que exatamente mudou ou qual era o problema original, mas funcionou. Espero que também o ajude, porque esse erro é bastante irritante ...


1
No meu caso, eu preciso gerar o apk do primeiro produto (depuração para lançamento) até o último sabor (depuração para lançamento).
Fruit

3
Sim!! Também funcionou para mim. obrigado. Não sei por que, mas parece um bug.
Doongsil 29/05/19

3
tentando em AndroidStudio3.5 no Mac OS, todos SDK atualizado, usando a versão Gradle com.android.tools.build:gradle:3.5.0, esta solução não está funcionando para mim
Mihodi Lushan

1
No meu caso: AndroidStudio3.5, Construir pacote (s) / apk (s) => Build apk (s), em seguida, gerar Assinado APK
solo de

1
É uma loucura, mas esta solução funciona - não entendo o porquê. Android Studio 3.5, Windows
cVoronin 30/08/19

22

A limpeza do projeto não me ajudou, mas a exclusão manual de todas as pastas de criação geradas automaticamente em todos os módulos ajudou. insira a descrição da imagem aqui


Isso equivale a limpar o projeto.
Devgianlu 22/04/19

4
Não, tente limpar o projeto do Android Studio e, em seguida, verifique o diretório do aplicativo em busca de builddiretórios em qualquer explorador de arquivos. Você verá que alguns arquivos ainda permanecem lá.
Roman Nazarevych

No meu caso, eu tinha vários sabores, funcionou depois de excluir toda a pasta de compilação, juntamente com as pastas específicas do Flavor. Depois de excluir pastas, eu tive que fechar o projeto e reabrir para fazê-lo funcionar
Hari

tentando em AndroidStudio3.5 no Mac OS, todos SDK atualizado, usando a versão Gradle com.android.tools.build:gradle:3.5.0, esta solução não está funcionando para mim
Mihodi Lushan

18

Atualizando para o Android Studio 3.4.? eu recebo a mensagem

Causa: buildOutput.apkData não deve ser nulo

Procurando uma resposta, encontrei o procedimento:

Build -> Clean Project

mas não funcionou, sei que esse procedimento excluirá o conteúdo do /builddiretório, mas, pela minha experiência, não funciona em todos os casos, por isso tentei o modo "bruto", excluindo o diretório:

/app/build/ 

então eu reconstruo o projeto e funcionou.


2
Isso funcionou para mim, mas eu também precisei remover todos os <flavor>/<buildConfig>diretórios (trata-se de output.jsonarquivos neles). Clean projectsozinho não resolveu o problema.
javaxian

11

Eu tentei acima de várias soluções, mas nada aconteceu, então eu achei isso e funcionou para mim

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

Agora eu sou capaz de gerar apk


9

Todas as soluções não funcionaram comigo

Android Studio V 3.5

Android gradle plugin V 3.4.2

Gradle Versão V 5.1.1

  1. Limpe o projeto
  2. Reinicie o Android Studio + invalide caches
  3. Exclua a pasta de compilação, depuração e lançamentos
  4. Criar projeto
  5. Gerar APK assinado

Referência


7

Eu tentei muitas coisas para resolver o problema, mas nada ajudou. Recebo esse erro ao tentar gerar um apk assinado.

A atualização para versões mais antigas do Android Studio ajudou (3.4.2) a funcionar, mas essa não é a solução.

A função 'Limpar projeto' no AS não limpa o local onde o apk gerado é criado e há um arquivo que pode estar bloqueando todo o procedimento: output.json

Tente remover output.json de ... / app / projectname / release / output.json


5

Eu estava usando o Android Studio 3.5 beta 2 e estava tendo exatamente o mesmo erro, mas apenas na versão do meu build. Depois de tentar todas as outras soluções que encontrei, a única maneira de compilar novamente era voltar ao Android Studio 3.4.


Essa "solução" também funcionou para mim. Faça o downgrade para o AS 3.4.2, faça o download aqui: developer.android.com/studio/archive e alterando de 3.5.0 para: classpath 'com.android.tools.build:gradle:3.4.2'
Loadeed

4

Funciona para mim:

  1. exclua a pasta de compilação do seu projeto manualmente.

  2. no terminal do android studio digite este comando

se usuário do windows

gradlew clean build

se usuário linux

./gradlew clean build

1
tentando em AndroidStudio3.5 no Mac OS, todos SDK atualizado, usando a versão Gradle com.android.tools.build:gradle:3.5.0, esta solução não está funcionando para mim
Mihodi Lushan

4

Esse problema ocorre geralmente quando você está executando várias janelas do Android Studio com projetos diferentes.

A solução é

  • escolha o projeto do que excluir .gradle e criar pastas
  • do que limpar e reconstruir o projeto.

por favor ref captura de tela anexada

por favor ref captura de tela anexada


tentando em AndroidStudio3.5 no Mac OS, todos SDK atualizado, usando a versão Gradle com.android.tools.build:gradle:3.5.0, esta solução não está funcionando para mim
Mihodi Lushan

Você pode tentar Arquivo> Invalidar caches / Reiniciar após excluir arquivos gerados automaticamente .gradle e compilar @MihodiHasanLushan
Suresh Maidaragi

4

Basta alterar o local de lançamento / depuração do Apk .

EX:

/home/sanaebadi/Desktop

após alteração:

/home/sanaebadi/apk

3

A solução para mim foi excluir todos os arquivos e pastas da pasta de saída apk. Eu tive esse problema ao criar um apk assinado para um sabor de "produção" e a output.jsonpasta de saída "recurso" causa o problema -> Android Studio 3.6 Canary 7me mostrou a mensagem de erro correta. Também está funcionando agora para o AS 3.5 estável com o Gradle Plugin 3.5.0.


3

Todas as soluções não funcionaram comigo
No meu caso, da atualização do AndroidStudio 3.4+ para 3.5.
E finalmente resolvo modificando 'Pasta de destino' para "app / build / outputs / apk"
detail pic


2

a única solução que funciona para mim é usar no meu gradle de raiz

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

o que eu tentei: - limpar todas as pastas de compilação manualmente - invalidar cache, mas nada disso é trabalho

PS: eu estou usando o android studio 3.5 btw

Atualização:

assim como @Vishrut Mavani, alterar a pasta de destino da sua versão de lançamento é trabalho


2

Normalmente, esse problema ocorre na atualização do Android Studio V3.4 para V3.5. Tente excluir debug/output.jsone release/output.jsonarquivos.

Em seguida, tente estas etapas:

Etapa 1: Limpar projeto (Compilar> Limpar projeto)

Etapa 2: Reconstruir projeto (Compilar> Reconstruir projeto)


2

Eu tenho o android studio 3.5.1. Para mim, as etapas abaixo são trabalhadas

  1. Arquivo -> invalidar caches / reiniciar
  2. Depois que o android studio reiniciar, clique em Build -> Clean project
  3. Em seguida, Build -> Rebuild Project

1

No meu caso, o projeto de compilação e lançamento com diferentes configurações de compilação foi bem-sucedido. Cause: buildOutput.apkData must not be nullPor outro lado, ao gerar um erro de geração de apk assinado, o apk foi gerado e a exibição de alternância de saída de impressão é impressa BUILD SUCCESSFUL. A instalação manual termina com a mensagem App not installed. Minha culpa foi usar compileSdkVersion 'android-P'e depois de mudar para compileSdkVersion 28tudo vai bem.


1

Eu tentei todas as soluções e nenhuma delas ajudou! finalmente, depois de muitas tentativas, eu descobri, basta seguir as dicas:

  1. copie sua combinação de teclas de assinatura (que você usa para liberar) dentro yourProject/app/
  2. gradle.properties (modifique valores relacionados à sua própria chave):
    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. nível de aplicativo build.gradle (dentro do 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. no nível do aplicativo build.gradle (dentro de buildTypes):
    release {
        manifestPlaceholders = [analytics_deactivated: "false"]
        minifyEnabled true
        signingConfig signingConfigs.release
        useProguard true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    5. finalmente este comando:

Mac: ./gradlew clean assemble_YOUR_FAVOR_Release

ganhar: gradlew clean assemble_YOUR_FAVOR_Release

Onde _YOUR_FAVOR_está seu favor opcional? Se você não estiver usando nenhum favor, basta usar em assembleReleasevez deassemble_YOUR_FAVOR_Release


1

Esse problema ocorre após a atualização do meu estúdio Android v3.4 para v3.5 Agora, ele está funcionando bem

Corrigi esse problema excluindo os arquivos debug / output.json e release / output.json

Compilações do Android Studio 3.5

apk gerando trabalho


1

Eu também estava irritado com o mesmo bug. Mas alterar meu destino de apk assinado de c / users / project / app para c / users / project funcionou para mim.


1

1- Exclua todos os pacotes de aplicativos gerados (.aab) e APKs para todas as variantes.

2- Exclua a pasta build

3- projeto limpo


1

Exclua manualmente toda a pasta de variante de compilação existente, bem como a pasta de compilação na pasta do projeto que funcionou para mim.


0

Gere APK assinado para depuração e, em seguida, você pode gerar APK assinado para lançamento .


0

A solução :-

1- Build -> Clean Projectnão ajudou

2- Build -> Make Projectnão ajudou

3- reiniciar o android studio não ajudou

4- Remover manualmente a pasta Build appe projectnão ajudou

a única solução para mim foi remover todas as compilações antigas da pasta de destino


-1

Parece que limpar o projeto pode resolver o problema, mas para mim funcionou assim.

Arquivo-> sincronizar projeto com arquivos gradle.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.