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


245

Мое приложение для 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)
        ...


3
У меня то же самое после того, как я обновил Android Studio до 3,4
— Эндрю

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

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

Ответы:


312

Нажмите 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'

1
Я могу подтвердить, что это работает также с версией com.android.tools.build:gradle:3.5.0-alpha05(с Build-> Rebuild Projectв AS)
— kikoso

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

8
Работает на Android Studio 3.4
— Рафаэль

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

1
пробовал те, да, я получаю эту ошибку. @MartinPfeffer
— Миходи Лушан

151

Для Android Studio 3.5Обновление. (APK подписан вопрос)

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

Перед

c:\user\folder\project\app

После

c:\user\folder\project\apk


Для Android Studio 3.4Обновление.

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

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

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

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


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

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

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

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

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

138

ДЛЯ Android Studio 3.5 | 3,6

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

buildOutput.apkData must not be null

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

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

C: \ пользователь \ папка \ Проект \ приложение

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

C: \ папка пользователя \ Проект \ \

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

Скриншот папки назначения студии Android


5
Я действительно ценю ваше решение. Спасибо. Это просто и очень глупая ошибка сборки Android Studio.
— Джеймс

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

1
О боже, это обновление Android Studio до 3.5 приносит мне много проблем.
— Энрике Монте

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

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

49

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

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

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


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

3
Да!! У меня это тоже сработало. Спасибо. Я не знаю почему, но это похоже на ошибку.
— Doongsil

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

1
В моем случае: AndroidStudio3.5, Build bundle (s) / apk (s) => Построить apk (s), затем создать подписанный APK
— соло,

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

22

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


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

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

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

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

18

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

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

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

Build -> Clean Project

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

/app/build/ 

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


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

11

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

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

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


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

Ссылка


7

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

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

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

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


5

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


Это «решение» также сработало для меня. Перейдите на AS 3.4.2, загрузите здесь: developer.android.com/studio/archive и
— перейдите

4

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

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

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

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

gradlew clean build

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

./gradlew clean build

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

4

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

Решение

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

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

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


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

Можете ли вы попробовать File> Invalidate caches / Restart после удаления автоматически сгенерированных файлов .gradle и сборки @MihodiHasanLushan
— Suresh Maidaragi

4

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

EX:

/home/sanaebadi/Desktop

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

/home/sanaebadi/apk

3

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


3

Все решения не работали со мной.
В моем случае с AndroidStudio 3.4+ обновление до 3.5.
И , наконец , я решить ее ИЗМЕНЯЮТ «Destination Folder» в «приложение / сборки / выходы / APK»
подробно рис


2

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

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

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

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

Обновить :

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


2

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

Затем попробуйте эти шаги:

Шаг 1: Чистый проект (Build> Clean Project)

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


2

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

  1. File -> Invalidate Caches / Restart
  2. После перезапуска андроид-студии нажмите Build -> Clean project
  3. Затем Build -> Перестроить проект

1

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


1

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

  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. наконец эта команда:

макинтош: ./gradlew clean assemble_YOUR_FAVOR_Release

выиграть: gradlew clean assemble_YOUR_FAVOR_Release

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


1

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

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

Android Studio 3.5 compilesdk Версия 28

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


1

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


1

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

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

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


1

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



0

Решение :-

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

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

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

4 - вручную удалить папку сборки из appи projectне помогло

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


-1

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.