Causa: buildOutput.apkData no debe ser nulo


245

Mi aplicación de Android que usa Kotlin arroja esta excepción cuando intento ejecutar 'app' en el emulador o en mi teléfono celular. Cuando construyo mi proyecto, funciona bien, sin errores.

Estoy 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
Tengo lo mismo después de actualizar Android Studio a 3.4
Andrew

2
Compruebe la respuesta de Lemberg que funciona para mí, me he enfrentado a ese problema hoy
Nicky

Lo mismo para Java (no es necesario Kotlin) después de instalar Android Studio 3.5.
Patapoom

Respuestas:


311

Haga clic en Build->Clean Project

Entonces Build->Make Project

Probado en gradle 3.5.0-alpha3, -alpha5 y 3.4.0 (proyecto gradle)

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

1
Puedo confirmar que esto funciona también con la versión com.android.tools.build:gradle:3.5.0-alpha05(con Build-> Rebuild Projecten AS)
kikoso

1
Lamentablemente, requiere actualizar a Android Studio 3.5, no puedo decirle a mi equipo que cambie a un canal inestable para las actualizaciones de Android Studio.
void.pointer

8
Funciona en Android Studio 3.4
Rafael

66
probando AndroidStudio3.5 en Mac OS, todo sdk actualizado, usando la versión gradle com.android.tools.build:gradle:3.5.0, esta solución no funciona para mí
Mihodi Lushan

1
probé esos, sí, recibo este error. @MartinPfeffer
Mihodi Lushan

151

Para la 3.5actualización de Android Studio . (Problema firmado de APK)

Paso 1: he resuelto este problema modificando la ubicación de la carpeta de destino .

antes de

c:\user\folder\project\app

Después

c:\user\folder\project\apk


Para la 3.4actualización de Android Studio .

Paso 1: Después de actualizar Android Studio 3.4 , debe agregar toda la dependencia que utilizó en su módulo o biblioteca en su nivel de aplicación build.gradle.

Paso 2: proyecto limpio (compilación> proyecto limpio)

Paso 3: Reconstruir proyecto (Construir> Reconstruir proyecto)

Ahora, su proyecto se compilará perfectamente.


1
¿que es eso? ¿Qué debo hacer exactamente? > Paso 1: Después de actualizar Android Studio 3.4, debe agregar toda la dependencia que utilizó en su módulo o biblioteca en su build.gradle de nivel de aplicación.
babay

1
@babay Supongamos que está utilizando cualquier biblioteca que está utilizando la biblioteca Glide. Luego debe agregar su dependencia de Glide en su nivel de aplicación build.gradle también.
Vishrut Mavani

1
@VishrutMavani Gracias por tu respuesta, pero encontré el error realmente estúpido de Android Studio. Acabo de cambiar la ruta de salida de compilación. Es decir. Solución de Shuham Jain. Vea a continuación su solución.
James

55
Esto solucionó mi problema en Android Studio v3.5 y un proyecto Java. Este es un hecho bastante estándar cada vez que compila aplicaciones de Android ahora ... (1) obtiene un extraño error de compilación incomprensible (2) google it (3) desbordamiento de pila (4) aplica una solución alternativa aparentemente no relacionada en un orden específico (5) ora (6 ) funciona (7) vaya al paso (1)
dodgy_coder

2
No puedo creer que la solución funcional a este problema sea en realidad "Cambiar la carpeta de destino". ¡Pero es! ¯ \ _ (ツ) _ / ¯
mkasberg

138

PARA Android Studio 3.5 | 3.6

Las compilaciones de depuración finalizan sin ningún error. Durante la creación de un .apk firmado se produce el mismo error

buildOutput.apkData must not be null

La solución simple que encontré es. Durante la firma de la apk después de ingresar las credenciales de firma cuando navega a la siguiente pantalla, le pedirá que la carpeta de destino simplemente cambie la ruta predeterminada.

Supongamos que la ruta de destino actual es

c: \ user \ folder \ project \ app

cámbielo a

c: \ usuario \ carpeta \ proyecto \

entonces generará la apk firmada con éxito.

Captura de pantalla de la carpeta de destino de Android Studio


55
Realmente aprecio tu solución. Gracias. Este es un error de compilación simple y realmente estúpido de Android Studio.
James

2
Wow, me salvaste la vida con esto. Sin embargo, ¿es esto un error en Android Studio o mi proyecto está en mal estado?
Vijay Kumar Kanta

1
Dios mío, esta actualización de Android Studio a 3.5 trae muchos problemas para mí.
Henrique Monte

1
Muy útil en Android 3.5.2
CodeFluid

1
Gracias y buena solución. Actualicé Android Studio, incluso este error ocurre en Android Studio 3.6. Esta solución me salvó el día. Gracias de nuevo
Divakar Murugesh

49

También recibí este error al intentar "Generar APK firmado" para mi versión de lanzamiento. Probé todos los métodos anteriores, desafortunadamente ninguno funcionó para mí.

Lo que funcionó fue generar primero la versión firmada de depuración de la aplicación, y luego generar nuevamente la versión de lanzamiento.

No sé qué cambió exactamente o cuál fue el problema original, pero funcionó. Espero que también te ayude, porque este error es bastante molesto ...


1
En mi caso, necesito generar el primer sabor del producto apk (depurar para liberar) para el último sabor (depurar para liberar).
Fruta

3
¡¡Si!! A mí también me funcionó. Gracias. No sé por qué, pero parece un error.
Doongsil

3
probando AndroidStudio3.5 en Mac OS, todo sdk actualizado, usando la versión gradle com.android.tools.build:gradle:3.5.0, esta solución no funciona para mí
Mihodi Lushan

1
En mi caso: AndroidStudio3.5, Build bundle (s) / apk (s) => Build apk (s), luego Generate Signed APK
solo

1
Es una locura, pero esta solución funciona, no entiendo por qué. Android Studio 3.5, Windows
cVoronin

22

La limpieza del proyecto no me ayudó, pero sí ayudó eliminar manualmente todas las carpetas de compilación generadas automáticamente en todos los módulos. ingrese la descripción de la imagen aquí


Esto es equivalente a limpiar el proyecto.
devgianlu

44
No, no lo es, intente limpiar el proyecto desde Android Studio y luego verifique el directorio de la aplicación para ver los builddirectorios en cualquier explorador de archivos, verá que todavía quedan algunos archivos allí.
Roman Nazarevych

En mi caso, tenía varios sabores, funcionó una vez que eliminé toda la carpeta de compilación junto con las carpetas específicas de Flavor. Después de eliminar carpetas, tuve que cerrar el proyecto y volver a abrirlo para que funcionara
Hari

probando AndroidStudio3.5 en Mac OS, todo sdk actualizado, usando la versión gradle com.android.tools.build:gradle:3.5.0, esta solución no funciona para mí
Mihodi Lushan

18

¿Actualización a Android Studio 3.4.? , entiendo el mensaje

Causa: buildOutput.apkData no debe ser nulo

buscando una respuesta encontré el procedimiento:

Build -> Clean Project

pero no funcionó, sé que este procedimiento eliminará el contenido en el /builddirectorio pero, según mi experiencia, no funciona en todos los casos, así que probé la forma "en bruto", eliminando el directorio:

/app/build/ 

Luego reconstruí el proyecto y funcionó.


2
Esto funcionó para mí, pero también tuve que eliminar todos los <flavor>/<buildConfig>directorios (se trata de output.jsonarchivos en ellos). Clean projectsolo no resolvió el problema.
javaxian

11

Intenté varias soluciones por encima, pero no pasó nada, entonces encontré esto y funcionó

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

Ahora puedo generar apk


9

Todas las soluciones no funcionaron conmigo

Android Studio V 3.5

Complemento Android Gradle V 3.4.2

Gradle Versión V 5.1.1

  1. Limpiar el proyecto
  2. Reinicie Android Studio + Invalidar cachés
  3. Eliminar la carpeta de compilación, depuración y versiones
  4. Hacer proyecto
  5. Generar APK firmado

Referencia


7

He intentado muchas cosas para resolver el problema, pero nada me ayudó. Recibo este error cuando intento generar un apk firmado.

La degradación a versiones anteriores de Android Studio ayudó (3.4.2) funcionó, sin embargo, esta no es la solución.

La función 'Limpiar proyecto' en AS no limpia el lugar donde se crea su apk generado y hay un archivo que puede estar bloqueando todo el procedimiento: output.json

Intente eliminar output.json de ... / app / projectname / release / output.json


5

Estaba usando Android Studio 3.5 beta 2 y estaba teniendo exactamente el mismo error pero solo en mi versión de lanzamiento. Después de probar cualquier otra solución que encontré, la única forma en que pude compilar nuevamente fue volver a Android Studio 3.4.


Esta "solución" también funcionó para mí. Baje a AS 3.4.2, descargue aquí: developer.android.com/studio/archive y cambie de 3.5.0 a: classpath 'com.android.tools.build:gradle:3.4.2'
Cargado el

4

Esto funciona para mi:

  1. elimine la carpeta de compilación de su proyecto manualmente.

  2. en la terminal de Android Studio, escriba este comando

si usuario de windows

gradlew clean build

si usuario de Linux

./gradlew clean build

1
probando AndroidStudio3.5 en Mac OS, todo sdk actualizado, usando la versión gradle com.android.tools.build:gradle:3.5.0, esta solución no funciona para mí
Mihodi Lushan

4

Este problema ocurre generalmente cuando está ejecutando múltiples ventanas de estudio de Android con diferentes proyectos.

La solucion es

  • elija un proyecto que elimine .gradle y cree carpetas
  • que limpiar y reconstruir el proyecto.

por favor ref captura de pantalla adjunta

por favor ref captura de pantalla adjunta


probando AndroidStudio3.5 en Mac OS, todo sdk actualizado, usando la versión gradle com.android.tools.build:gradle:3.5.0, esta solución no funciona para mí
Mihodi Lushan

¿Puede probar Archivo> Invalidar cachés / reiniciar después de eliminar archivos generados automáticamente .gradle y compilar @MihodiHasanLushan
Suresh Maidaragi

4

Simplemente cambie la ubicación de lanzamiento / depuración de Apk .

EX:

/home/sanaebadi/Desktop

después del cambio:

/home/sanaebadi/apk

3

La solución para mí fue eliminar todos los archivos y carpetas de la carpeta de salida apk. Tuve este problema al crear una apk firmada para un sabor de "producción" y la output.jsoncarpeta de salida en la "característica" causa el problema -> Android Studio 3.6 Canary 7me mostró el mensaje de error correcto. También está funcionando ahora para AS 3.5 estable con Gradle Plugin 3.5.0.


3

Todas las soluciones no funcionaron conmigo
En mi caso, desde AndroidStudio 3.4+ actualización a 3.5.
Y finalmente lo resuelvo modificando 'Carpeta de destino' a la imagen de detalle "app / build / salidas / apk"


2

la única solución que funciona para mí es usar en mi raíz gradle

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

lo que he intentado: - borrar todas las carpetas de compilación manualmente - invalidar caché pero nada de esto es trabajo

PD: estoy usando Android Studio 3.5 por cierto

Actualización:

Al igual que @Vishrut Mavani, cambiar la carpeta de destino de su versión de lanzamiento es un trabajo


2

Por lo general, este problema ocurre al actualizar Android Studio V3.4 a V3.5. Intenta eliminar debug/output.jsonyrelease/output.json archivos.

Luego intente estos pasos:

Paso 1: proyecto limpio (compilación> proyecto limpio)

Paso 2: Reconstruir proyecto (Construir> Reconstruir proyecto)


2

Tengo android studio 3.5.1. Para mi los pasos siguientes son trabajados

  1. Archivo -> Invalidar cachés / reiniciar
  2. Después de reiniciar Android Studio, haga clic en Build -> Clean project
  3. Luego Construir -> Proyecto de reconstrucción

1

En mi caso, el proyecto de compilación y lanzamiento con diferentes configuraciones de compilación fue exitoso. Pero, Cause: buildOutput.apkData must not be nullpor otro lado, se generó un error de lanzamiento de apk firmado y se generó la vista de alternancia Build Output BUILD SUCCESSFUL. La instalación manual termina con un mensaje App not installed. Mi culpa fue usar compileSdkVersion 'android-P'y después de cambiar a compileSdkVersion 28todo va bien.


1

He probado todas las soluciones y ninguna de ellas me ayudó. Finalmente, después de muchos intentos, lo descubrí, solo sigue los consejos:

  1. copie su firma keytrok (que usa para liberar) dentro yourProject/app/
  2. gradle.properties (modificar valores relacionados con su propia clave):
    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. nivel de aplicación build.gradle (dentro de 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. nivel de aplicación 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

ganar: gradlew clean assemble_YOUR_FAVOR_Release

¿Dónde _YOUR_FAVOR_está su favor opcional? Si no está usando ningún favor, simplemente use en assembleReleaselugar deassemble_YOUR_FAVOR_Release


1

Este problema ocurre después de actualizar mi Android studio v3.4 a v3.5 Ahora, está funcionando bien

Solucioné este problema eliminando los archivos debug / output.json y release / output.json

Android Studio 3.5 compilesdkVersion 28

apk generando trabajo


1

También me molestó el mismo error. Pero cambiar mi destino de apk firmado de c / users / project / app a c / users / project funcionó para mí.


1

1- Eliminar todos los paquetes de aplicaciones generados (.aab) y APK para todas las variantes.

2- Eliminar la carpeta de compilación

3- proyecto limpio


1

Eliminar manualmente toda la carpeta de variantes de compilación existente, así como la carpeta de compilación en la carpeta del proyecto funcionó para mí.


0

Genere APK firmado para la depuración , y luego puede generar APK firmado para su lanzamiento .


0

La solución :-

1- Build -> Clean Projectno ayudó

2- Build -> Make Projectno ayudó

3- reiniciar android studio no ayudó

4- Eliminar manualmente la carpeta Build de appy projectno ayudó

la única solución para mí fue eliminar todas las compilaciones antiguas de la carpeta de destino


-1

Parece que limpiar el proyecto puede resolver el problema, pero para mí funcionó así.

Archivo-> proyecto de sincronización con archivos gradle.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.