Причина: buildOutput.apkData не повинна бути нульовою


245

Мій додаток для Android, що використовує Котлін, кидає це виняток, коли я намагаюся запустити "додаток" в емуляторі o на своєму мобільному телефоні. Коли я будую свій проект, він працює добре, без помилок.

Я використовую:

  • SDK 28 (Android 9.0 (Pie))
  • Градле 5.1.1
  • Плагін Gradle 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 (не потрібно Котлін) після встановлення Android Studio 3.5.
Patapoom

Відповіді:


311

Клацніть 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-alpha05Build-> 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
Mihodi Lushan

151

Для 3.5оновлення Android Studio . (APK підписаний випуск)

Крок 1. Я вирішив цю проблему, змінивши місце розташування папки призначення .

До цього

c:\user\folder\project\app

Після

c:\user\folder\project\apk


Для 3.4оновлення Android Studio .

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

Крок 2: Очистити проект (Збірка> Очистити проект)

Крок 3: Відновіть проект (Створення> Проект відновлення)

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


1
що це? що мені точно робити? > Крок 1: Після оновлення Android Studio 3.4 вам потрібно додати всю залежність, яка використовується у вашому модулі чи бібліотеці, у вашому додатку build.gradle на рівні програми.
Бабай

1
@babay Припустимо, ви використовуєте будь-яку бібліотеку, яка використовує бібліотеку 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
Я не можу повірити, що робоче рішення цієї проблеми насправді "Змінити папку призначення". Але це! ¯ \ _ (ツ) _ / ¯
mkasberg

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
OMG, це оновлення Android Studio до 3,5 приносить мені багато проблем.
Монте

1
Дуже корисно в Android 3.5.2
CodeFluid

1
Спасибі та приємне рішення. Я оновив Android Studio, навіть ця помилка виникає в Android Studio 3.6. Це рішення врятувало мені день. Ще раз
дякую

49

Я отримував цю помилку також під час спроби "Створити підписаний APK" для моєї версії випуску. Я спробував всі перераховані вище методи, на жаль, жоден не працював для мене.

Що працювало, було спершу створити версію програми, підписану налагодження, а потім знову створити версію.

Я не знаю, що саме змінилося або в чому полягала початкова проблема, але вона спрацювала. Я сподіваюся, що це теж допоможе вам, адже ця помилка дуже дратує ...


1
У моєму випадку мені потрібно генерувати перший аромат продукту apk (налагодження для випуску) до останнього аромату (налагодження для випуску).
фрукти

3
Так!! Це працювало і для мене. Дякую. Я не знаю чому, але це схоже на помилку.
Донгсіль

3
пробую AndroidStudio3.5 на Mac OS, весь sdk оновлений, використовуючи версія gradle com.android.tools.build:gradle:3.5.0, це рішення для мене не працює
Mihodi Lushan

1
У моєму випадку: AndroidStudio3.5, збирайте пакет (и) / apk (s) => Створіть apk (s), а потім створити підписане APK
соло

1
Це божевільно, але це рішення працює - я не розумію, чому. Android Studio 3.5, Windows
cVoronin

22

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


Це еквівалент очищення проекту.
devgianlu

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

У моєму випадку у мене було кілька смаків, воно спрацювало, як тільки я видалив всю папку збірки разом із специфічними папками для смаку. Після видалення папок мені довелося закрити проект і знову відкрити його для роботи
Харі

пробую 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 та перехід з 3.5.0 до: classpath 'com.android.tools.build :
gradle:3.4.2

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

Ця проблема трапляється зазвичай, коли ви запускаєте кілька вікон андроїд-студії з різними проектами.

Рішення є

  • виберіть проект, ніж видаляйте .gradle та створюйте папки
  • ніж очистити та відновити проект.

Будь ласка, ref знімок екрана додається

Будь ласка, ref знімок екрана додається


пробую AndroidStudio3.5 на Mac OS, весь sdk оновлений, використовуючи версія gradle com.android.tools.build:gradle:3.5.0, це рішення для мене не працює
Mihodi Lushan

Чи можете ви спробувати Файл> Недійсний кеш / Перезапустити після видалення автоматично створених файлів .gradle та побудувати @MihodiHasanLushan
Suresh Maidaragi

4

Просто змініть місце випуску / налагодження Apk .

EX:

/home/sanaebadi/Desktop

після зміни:

/home/sanaebadi/apk

3

Для мене рішенням було видалити всі файли та папки з папки виводу apk. У мене виникла ця проблема під час створення підписаного apk для "виробничого" аромату, і output.jsonв папці "output" виведення викликає проблему -> Android Studio 3.6 Canary 7показав мені правильне повідомлення про помилку. Він також працює для AS 3.5 стабільний з Gradle Plugin 3.5.0.


3

Всі рішення не працювали зі мною
У моєму випадку від оновлення AndroidStudio 3.4+ до 3.5.
І, нарешті, я вирішую це, змінивши "Destination Folder" на "app / build / outputs / apk"
детально рис


2

єдине рішення, яке працює для мене, - це використання в моєму кореневому градусі

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

що я намагався: - очистити всю папку збірки вручну - недійсний кеш, але жодне з них не працює

PS: Я використовую андроїд-студію 3,5 btw

Оновлення:

подібно до @Vishrut Mavani, зміна папки призначення версії випуску працює


2

Зазвичай ця проблема трапляється на оновлення андроїд Studio V3.4 до V3.5. Спробуйте видалити debug/output.jsonта release/output.jsonфайли.

Потім спробуйте виконати наступні дії:

Крок 1: Очистити проект (Збірка> Очистити проект)

Крок 2: Відновіть проект (побудувати> відновити проект)


2

У мене андроїд-студія 3.5.1. Для мене нижче кроки працюють

  1. Файл -> Недійсні кеші / Перезапуск
  2. Після перезавантаження андроїд-студії натисніть на Збірка -> Очистити проект
  3. Потім побудуйте -> Відновіть проект

1

У моєму випадку проект збирання та запуску з різними конфігураціями збірки був успішним. Але генерування підписаних apk кидає помилку Cause: buildOutput.apkData must not be nullз іншого боку, apk було створено і побудувати вихідний перемикання перегляду перегляду 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 Тепер вона працює чудово

Я виправив цю проблему, видаливши налагоджувальний / вихідний.json і випуску / випуску / виведення.json файлів

Android Studio 3.5 компілюєdkVersion 28

apk generating working


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- Видаліть папку Build вручну appі projectне допомогло

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


-1

Здається, очищення проекту може вирішити проблему, але для мене він працював так.

Файл-> проект синхронізації з файлами gradle.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.