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

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

Я использую:

  • SDK 28 (Android 9.0 (круговая))
  • Грейдл 5.1.1
  • Плагин Gradle 3.5.0-alpha03
  • Котлин 1.3.10
  • Ява 1.8.0_151
  • ОС X 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)
        ...

Я создал тикет issuetracker.google.com/issues/129994596

Eugen Martynov 05.04.2019 13:35

У меня то же самое после обновления Android Studio до 3.4.

Andrew 23.04.2019 10:17

Проверьте ответ Лемберга, который работает для меня, сегодня я столкнулся с этой проблемой.

Nicky 23.04.2019 11:06

То же самое для Java (не обязательно Kotlin) после установки Android Studio 3.5.

Patapoom 28.08.2019 14:32
266
4
77 795
28

Ответы 28

Щелкните Build -> Clean Project.

Затем Build -> Make Project

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

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

Я могу подтвердить, что это работает и с версией com.android.tools.build:gradle:3.5.0-alpha05Build -> Rebuild Project в AS)

kikoso 25.02.2019 10:05

Также работает для classpath 'com.android.tools.build:gradle:3.4.0-rc02'

luckyhandler 26.03.2019 13:47

К сожалению, для этого требуется обновление до Android Studio 3.5, я не могу сказать своей команде переключиться на нестабильный канал для обновлений Android Studio.

void.pointer 19.04.2019 17:08

@void.pointer, почему бы и нет? Я на канарейке (также для производства) в течение многих лет. Не могу пожаловаться на стабильность или плохую производительность (используя macOS).

Martin Pfeffer 22.04.2019 19:44

Работает на Android Studio 3.4.

Rafael 23.04.2019 06:20

пробую AndroidStudio3.5 в Mac OS, все SDK обновлены, используя версию Gradle com.android.tools.build:gradle:3.5.0, это решение у меня не работает

Mihodi Lushan 22.08.2019 10:32

@MihodiHasanLushan Удалите папку build и снова соберите проект. В противном случае проверьте правильность вашего градиента (sdk, зависимости и т. д.). Вы уверены, что получаете такое же сообщение об ошибке?

Martin Pfeffer 22.08.2019 11:35

попробовал те, да, я получаю эту ошибку. @МартинПфеффер

Mihodi Lushan 22.08.2019 11:39

@MihodiHasanLushan для меня это работает только после того, как я запустил «чистую сборку gradlew» на терминале студии Android. Я использую classpath 'com.android.tools.build:gradle:3.5.0' с Android Studio 3.5 на Windows 10.

ghita 22.08.2019 13:47

Работает на Android Studio 3.5.

Patapoom 28.08.2019 14:32

Мне нужно было только очистить, так как моя версия Gradle была 3.5.1, когда я обновил свой проект для своего репозитория.

Juan José Melero Gómez 23.10.2019 22:08

Также работает для classpath 'com.android.tools.build:gradle:3.5.3' Android Studio 3.6.3.

Wilmer 22.05.2020 03:49

Очистка проекта мне не помогла, но помогло ручное удаление всех автоматически сгенерированных папок строить во всех модулях.

Это эквивалент очистки проекта.

devgianlu 22.04.2019 14:56

Нет, попробуйте очистить проект из Android Studio, а затем проверьте каталог приложений на наличие каталогов build в любом проводнике, вы увидите, что некоторые файлы все еще остались там.

Roman Nazarevych 22.04.2019 17:02

В моем случае у меня было несколько вариантов, это сработало, как только я удалил всю папку сборки вместе со специфическими папками Flavor. После удаления папок мне пришлось закрыть проект и снова открыть, чтобы он заработал.

Hari 25.06.2019 22:17

пробую AndroidStudio3.5 в Mac OS, все SDK обновлены, используя версию Gradle com.android.tools.build:gradle:3.5.0, это решение у меня не работает

Mihodi Lushan 22.08.2019 10:32

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

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

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

В моем случае мне нужно сгенерировать apk первого варианта продукта (от отладки до выпуска) до последнего варианта (от отладки до выпуска).

林果皞 03.05.2019 12:45

Да!! Это сработало и для меня. благодаря. Не знаю почему, но похоже на баг.

Doongsil 29.05.2019 07:45

пробую AndroidStudio3.5 в Mac OS, все SDK обновлены, используя версию Gradle com.android.tools.build:gradle:3.5.0, это решение у меня не работает

Mihodi Lushan 22.08.2019 10:32

В моем случае: AndroidStudio3.5, сборка комплекта(ов)/apk(s) => сборка apk(s), затем создание подписанного APK

solo 23.08.2019 04:40

Это безумие, но это решение работает - я не понимаю, почему. Android Studio 3.5, Windows

cVoronin 30.08.2019 10:25

Это ошибка в Android Studio 3..5

Apparao Mulpuri 30.08.2019 11:59

For Android Studio 3.5 & 3.6 Update (APK signed issue)

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

До

c:\user\folder\project\app

После

c:\user\folder\project\apk

For Android Studio 3.4 Update.

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

Шаг 2: Чистый проект (Сборка > Чистый проект)

Шаг 3: Перестроить проект (Сборка > Перестроить проект)

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

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

babay 02.08.2019 19:08

@babay Предположим, вы используете любую библиотеку, использующую библиотеку Glide. Затем вы также должны добавить свою зависимость Glide в свой уровень приложения build.gradle.

VIISHRUT MAVANII 02.08.2019 21:11

я получил эту ошибку после шага 3. APT: ошибка: ресурс android:attr/fontStyle не найден.

james 30.08.2019 13:24

@james Я думаю, что не хватает ресурса. выполните следующие шаги, чтобы найти проблему. Нажмите на Gradle (вы найдете в правом верхнем углу)> app_name (root)> другое> assembleDebug

VIISHRUT MAVANII 30.08.2019 13:49

@VishrutMavani Спасибо за ваш ответ, но я обнаружил действительно глупую ошибку студии Android. Я просто изменил путь вывода сборки. Это. Решение Шухам Джейн. См. Ниже его решение.

james 30.08.2019 13:55

«Папка назначения» — это поле в модальном режиме «Создать подписанный пакет» или APK;

buncis 12.09.2019 13:59

Это исправило мою проблему в Android Studio v3.5 и проекте Java. Это довольно стандартное явление при создании приложений для Android сейчас ... (1) получить странную непонятную ошибку сборки (2) погуглить (3) переполнение стека (4) применить, казалось бы, несвязанный обходной путь в определенном порядке (5) молиться (6 ) работает (7) переходим к шагу (1)

dodgy_coder 27.09.2019 04:32

Я не могу поверить, что рабочим решением этой проблемы на самом деле является «Изменить папку назначения». Но это! ¯\_(ツ)_/¯

mkasberg 24.11.2019 04:59

я не знаю, где предполагается изменить этот каталог. я еще не разобрался

Billyjoker 02.12.2019 16:59

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

VIISHRUT MAVANII 03.12.2019 04:55

В 3.5.3 «Изменить папку назначения» не поддерживается из-за того, что студия уже отключила параметр изменения места назначения.

Nuwan Withanage 12.01.2020 18:13

@NuwanWithanage У меня есть другое решение, и оно может вам помочь. попробуйте сначала сгенерировать сборку с подписью отладки, а затем сгенерировать подписанную версию.

VIISHRUT MAVANII 15.01.2020 05:10

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

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

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

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

gradlew clean build

если пользователь линукс

./gradlew clean build

пробую AndroidStudio3.5 в Mac OS, все SDK обновлены, используя версию Gradle com.android.tools.build:gradle:3.5.0, это решение у меня не работает

Mihodi Lushan 22.08.2019 10:33

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

Это «решение» также сработало для меня. Перейти на AS 3.4.2, скачать здесь: developer.android.com/studio/архив и перейти с 3.5.0 на: classpath 'com.android.tools.build:gradle:3.4.2'

Loadeed 22.08.2019 22:41

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

Cause: buildOutput.apkData must not be null

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

Build -> Clean Project

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

/app/build/ 

затем я перестраиваю проект, и это сработало.

Это сработало для меня, но мне также пришлось удалить все каталоги <flavor>/<buildConfig> (в них речь идет о файлах output.json). Только Clean project не решил проблему.

javaxian 29.08.2019 11:53

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

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

File->sync project with gradle files.

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

Решение

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

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

please ref screen shot attached

пробую AndroidStudio3.5 в Mac OS, все SDK обновлены, используя версию Gradle com.android.tools.build:gradle:3.5.0, это решение у меня не работает

Mihodi Lushan 22.08.2019 10:33

Можете ли вы попробовать «Файл»> «Недействительные кеши/перезагрузить» после удаления автоматически сгенерированных файлов .gradle и сборки @MihodiHasanLushan

Suresh Maidaragi 22.08.2019 11:06

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

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

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

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

Обновлять :

как и @Vishrut Mavani, изменение папки назначения вашей версии выпуска — это работа.

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

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

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

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

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

  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 (внутри андроида):

    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

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

Все решения не работали со мной

Android-студия V 3.5

Плагин Android Gradle V 3.4.2

Версия Gradle V 5.1.1

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

Ссылка

Все решения не работали со мной
В моем случае обновление AndroidStudio 3.4+ до 3.5.
И, наконец, я решил это, изменив «Папку назначения» на «app/build/outputs/apk»
. подробное изображение

FOR Android Studio 3.5 | 3.6

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

buildOutput.apkData must not be null

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

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

c:\user\folder\project\app

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

c:\user\folder\project\

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

Android studio destination folder screenshot

Я очень ценю ваше решение. Спасибо. Это просто простая и очень глупая ошибка сборки Android Studio.

james 30.08.2019 13:53

Вау, ты спас мне жизнь этим. Однако это ошибка в Android Studio или мой проект испорчен?

Vijay Kumar Kanta 03.09.2019 15:38

@ Виджай Кумар Канта, это проблема со студией, надеюсь, в новом обновлении она будет исправлена.

Shubham Jain 03.09.2019 16:41

OMG, это обновление Android Studio до 3.5 приносит мне много проблем.

Henrique Monte 05.09.2019 03:35

Очень полезно в Android 3.5.2

CodeFluid 10.11.2019 22:16

Спасибо и хорошее решение. Я обновил Android Studio, даже эта ошибка возникает в Android Studio 3.6. Это решение спасло мой день. Еще раз спасибо

Divakar Murugesh 27.02.2020 11:21

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

Pipin Indrawan 30.04.2021 08:38

Эта проблема возникает после обновления моей студии Android с версии 3.4 до версии 3.5. Теперь он работает нормально

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

Android-студия 3.5 compilesdkВерсия 28

apk работает

Меня тоже раздражал такой же баг. Но мне помогло изменение моего Подписанный apk-адрес с c/пользователи/проект/приложение на c/пользователи/проект.

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

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

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

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

БЫВШИЙ:

/home/sanaebadi/Desktop

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

/home/sanaebadi/apk

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

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

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

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

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

Вы не можете создать «Подписанный отладочный APK»

Farid 09.11.2020 14:46

Вы можете подписать отладочную сборку developer.android.com/studio/publish/app-signing#debug-mode

Dita Aji Pratama 11.11.2020 05:30

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

Затем попробуйте выполнить следующие действия:

Шаг 1: Чистый проект (Сборка > Чистый проект)

Шаг 2: Перестроить проект (Сборка > Перестроить проект)

У меня андроид студия 3.5.1. Для меня работают следующие шаги

  1. Файл -> Недействительные кеши/Перезапустить
  2. После перезапуска студии Android нажмите «Сборка» -> «Очистить проект».
  3. Затем Build -> Rebuild Project

Решение :-

1- Build -> Clean Project не помог

2-Build -> Make Project не помог

3- перезапустить андроид студию не помогло

4- Удаление папки Build вручную с app и project не помогло

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

AS 4.0.1 (устанавливается через оснастку)

Убунту 18.04 лт

настройка сборок через вариант сборки.

Комбинации инвалидировать кеш/сборку/очистить и т.д. сами по себе не помогли, помогло только переключение сборки активного варианта сборки обратно на armDebug и после этого очистка/сборка.

Как только я переключился обратно на нужный вариант, я смог построить правильно.

Другие вопросы по теме