Причина: buildOutput.apkData не должно быть нулевым

Мое приложение для Android, использующее Kotlin, выдает это исключение, когда я пытаюсь запустить "приложение" в эмуляторе o в моем мобильном телефоне. Когда я строю свой проект, он работает хорошо, без ошибок.

Я использую:

  • SDK 28 (Android 9.0 (пирог))
  • Gradle 5.1.1
  • Gradle Plugin 3.5.0-alpha03
  • Котлин 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)
        ...

Ответы

Ответ 1

Нажмите BuildClean Project

Затем BuildMake Project

Протестировано на Gradle 3.5.0-alpha3, -alpha5 и 3.4.0 (проект Gradle)

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

Ответ 2

For Android Studio 3.5 Update. (APK signed issue)

Шаг 1. Я решил эту проблему, изменив местоположение папки назначения.

Перед

c:\user\folder\project\app
После того, как

After

c:\user\folder\project\apk


For Android Studio 3.4 Update.

Шаг 1. После обновления Android Studio 3.4 вам нужно добавить все зависимости, которые использовались в вашем модуле или библиотеке, на уровне приложения build.gradle.

Шаг 2. Чистый проект (Build> Чистый проект)

Шаг 3. Перестроить проект (Build> Rebuild Project)

Теперь ваш проект будет отлично скомпилирован.

Ответ 3

ДЛЯ Android Studio 3.5

отладочные сборки заканчиваются без ошибок. При создании подписанного .apk приводит к той же ошибке

buildOutput.apkData must not be null

Простое решение, которое я нашел. Во время подписания apk после ввода учетных данных для подписи, когда вы переходите к следующему экрану, он запросит папку назначения, просто измените путь по умолчанию.

Предположим, что текущий путь назначения

c:\user\folder\project\app

измените его на

c:\user\folder\project\

тогда он успешно сгенерирует подписанный apk.

Ответ 4

Я также получал эту ошибку при попытке "Создать подписанный APK" для моей продакшен версии. Я перепробовал все вышеперечисленные методы, но, к сожалению, у меня не получилось.

То, что работало, сначала генерировало отлаженную версию приложения с подписью, а затем снова генерировало релизную.

Я не знаю, что именно изменилось или какова была первоначальная проблема, но это сработало. Я надеюсь, что это тоже поможет вам, потому что эта ошибка весьма раздражает...

Ответ 5

Очистка проекта мне не помогла, но помогло удаление всех автоматически сгенерированных папок build во всех модулях. enter image description here

Ответ 6

Обновление до Android Studio 3.4.?, я получаю сообщение

Причина: buildOutput.apkData не должно быть нулевым

в поисках ответа я нашел процедуру:

BuildClean Project

но это не сработало, я знаю, что эта процедура удалит содержимое в каталог /build, но, по моему опыту, это не работает во всех случаях, поэтому я попробовал "сырой" способ, удалив каталог:

/app/build/ 

Затем я перестроил проект, и он заработал.

Ответ 7

Я пробовал много вещей, чтобы решить проблему, но ничего не помогло. Я получаю эту ошибку при попытке создать подписанный apk.

Снижение до более старых версий Android Studio помогло (3.4.2), но это не решение.

Функция "Очистить проект" в AS не очищает место, где создается ваш сгенерированный apk, и есть один файл, который может блокировать всю процедуру: output.json

Попробуйте удалить файл output.json из... /app/projectname/release/output.json

Ответ 8

Я использовал Android Studio 3.5 beta 2, и у меня была точно такая же ошибка, но только при сборке релиза. Попробовав любое другое решение, которое я нашел, единственный способ, которым я смог снова скомпилировать, - это вернуться в Android Studio 3.4.

Ответ 9

Все решения не помогли мне

Android Studio V 3.5

Плагин Android Gradle V 3.4.2

Gradle Версия V 5.1.1

  1. Очистить проект
  2. Перезапустите Android Studio + Неправильные кэши
  3. Удалить папку сборки, отладки и выпусков
  4. Сделать проект
  5. Создать подписанный APK

Ссылка

Ответ 10

Меня устраивает:

  1. удалите папку сборки из вашего проекта вручную.

  2. в терминале андроид студии наберите эту команду

если пользователь Windows

gradlew clean build

если пользователь Linux

./gradlew clean build

Ответ 11

Эта проблема обычно возникает, когда вы запускаете несколько окон Android Studio с разными проектами.

Решение

  • выберите проект, затем удалите .gradle и создайте папки
  • чем очистить и перестроить проект.

пожалуйста, сделайте снимок экрана прилагается

please ref screen shot attached

Ответ 12

Я пробовал выше несколько решений, но ничего не произошло, потом я нашел это это и у меня сработало

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

Теперь я могу сгенерировать apk

Ответ 13

единственное решение, которое работает для меня, - это использование моего корневого Gradle

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

что я пробовал: - очистить всю папку сборки вручную - сделать кеш недействительным но ничего из этого не работает

PS: я использую Android Studio 3,5 кстати

Обновление:

так же, как @Vishrut Mavani, изменение папки назначения вашей версии релиза работает

Ответ 14

Решением для меня было удалить все файлы и папки из выходной папки apk. У меня была эта проблема при создании подписанного apk для "производственного" варианта, и output.json в выходной папке "feature" вызывает проблему → Android Studio 3.6 Canary 7 показал мне правильное сообщение об ошибке. Это также работает сейчас для AS 3.5 стабильной с Gradle Plugin 3.5.0.

Ответ 15

Просто измените место выпуска/отладки Apk.

EX:

/home/sanaebadi/Desktop

после изменения:

/home/sanaebadi/apk

Ответ 16

В моем случае проект сборки и запуска с различными конфигурациями сборки прошел успешно. Но генерирование подписанной ошибки выдает apk Cause: buildOutput.apkData must not be null другой стороны, Cause: buildOutput.apkData must not be null сгенерированный apk и переключаемый режим Build Output выводит BUILD SUCCESSFUL. Ручная установка заканчивается сообщением App not installed. Моя ошибка заключалась в использовании compileSdkVersion 'android-P' и после перехода на compileSdkVersion 28 все compileSdkVersion 28 хорошо.

Ответ 17

Я пробовал все решения, и ни одно из них не помогло! наконец, после многих попыток, я понял это, просто следуйте советам:

  1. скопируйте ваш ключ подписи (который вы используете для выпуска) внутри yourProject/app/
  2. gradle.properties (измените значения, связанные с вашим собственным ключом):
    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 (внутри 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 (внутри buildTypes):
    release {
        manifestPlaceholders = [analytics_deactivated: "false"]
        minifyEnabled true
        signingConfig signingConfigs.release
        useProguard true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    

    5. наконец, эта команда:

mac: ./gradlew clean assemble_YOUR_FAVOR_Release

победа: gradlew clean assemble_YOUR_FAVOR_Release

где _YOUR_FAVOR_ - ваша дополнительная услуга, если вы не используете какую-либо услугу, просто используйте assembleRelease вместо assemble_YOUR_FAVOR_Release

Ответ 18

Все решения не помогли мне
В моем случае из AndroidStudio 3. 4+ обновление до 3.5.
И, наконец, я решаю это, изменив "Папка назначения" на "app/build/output/apk"
подробный рисунок

Ответ 19

Меня тоже раздражал тот же баг. Но изменение моего подписанного назначения apk с c/users/project/app на c/users/project мне помогло.

Ответ 20

1- Удалите все сгенерированные пакеты приложений (.aab) и APK для всех вариантов.

2- Удалить папку сборки

3- чистый проект

Ответ 21

Удалите вручную всю существующую папку варианта сборки, а также папку сборки в папке проекта.

Ответ 22

Создать подписанный APK для отладки, а затем вы можете создать подписанный APK для версии.

Ответ 23

Обычно эта проблема возникает при обновлении Android Studio V3.4 до V3.5. Попробуйте удалить файлы debug/output.json и release/output.json

Ответ 24

Кажется, очистка проекта может решить проблему, но для меня это сработало так.

File-> синхронизировать проект с файлами Gradle.

Ответ 25

Эта проблема возникает после обновления моей Android Studio v3.4 до v3.5 Теперь он работает нормально

Я исправил эту проблему, удалив файлы debug/output.json и release/output.json

Android Studio 3.5 compilesdkVersion 28

apk создание рабочих

Ответ 26

Я откатился на

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

И все работает хорошо.