266 votes

Cause : buildOutput.apkData ne doit pas être nul

Mon application Android utilisant Kotlin lève cette exception lorsque j'essaie de lancer 'app' dans l'émulateur de mon téléphone portable. Lorsque je construis mon projet, il fonctionne bien, sans aucune erreur.

J'utilise :

  • SDK 28 (Android 9.0 (Pie))
  • Gradle 5.1.1
  • Plugin Gradle 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 votes

3 votes

J'ai le même problème après avoir mis à jour Android Studio en 3.4.

2 votes

Vérifiez la réponse de Lemberg qui fonctionne pour moi, j'ai été confronté à ce problème aujourd'hui.

1voto

Stanislav Bondar Points 2938

Dans mon cas, la construction et le lancement du projet avec différentes configurations de construction ont réussi. Mais la génération de l'apk signé génère une erreur Cause: buildOutput.apkData must not be null d'autre part apk a été généré et Build Output toggle view prints BUILD SUCCESSFUL . L'installation manuelle se termine par le message App not installed . Ma faute était d'utiliser compileSdkVersion 'android-P' et après avoir changé pour compileSdkVersion 28 tout se passe bien.

1voto

AlirezaXX Points 363

J'ai essayé toutes les solutions et aucun d'entre eux n'a aidé ! Finalement, après de nombreux essais, j'ai trouvé la solution, il suffit de suivre les conseils :

  1. copiez votre clé de signature (que vous utilisez pour libérer) à l'intérieur. yourProject/app/

  2. gradle.properties (modifiez les valeurs liées à votre propre clé) :

    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. niveau d'application build.gradle (à l'intérieur d'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. niveau d'application build.gradle (dans buildTypes) :

    release {
        manifestPlaceholders = [analytics_deactivated: "false"]
        minifyEnabled true
        signingConfig signingConfigs.release
        useProguard true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    5. Enfin, cette commande :

mac : ./gradlew clean assemble_YOUR_FAVOR_Release

gagner : gradlew clean assemble_YOUR_FAVOR_Release

donde _YOUR_FAVOR_ est votre faveur facultative, si vous n'utilisez pas de faveur, utilisez tout simplement assembleRelease au lieu de assemble_YOUR_FAVOR_Release

1voto

Pradeep P Points 221

Ce problème se produit après la mise à jour de mon Android studio v3.4 à v3.5. Maintenant, il fonctionne bien

J'ai résolu ce problème en supprimant les fichiers debug/output.json et release/output.json.

Android Studio 3.5 compilesdkVersion 28

apk générant du travail

1voto

Sarthak Sharma Points 11

J'étais également gêné par le même bug. Mais en changeant mon Destination de l'apk signé de c/utilisateurs/projet/app a c/utilisateurs/projet a fonctionné pour moi.

1voto

Islam Assi Points 270

1- Supprimez tous les app bundles (.aab) et APKs générés pour toutes les variantes.

2- Supprimez le dossier de construction

3- projet propre

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X