Penyebab: buildOutput.apkData tidak boleh nol

244

Aplikasi android saya menggunakan Kotlin melempar pengecualian ini ketika saya mencoba Menjalankan 'aplikasi' di emulator di ponsel saya. Ketika saya membangun proyek saya itu berjalan dengan baik, tanpa kesalahan.

Saya menggunakan:

  • SDK 28 (Android 9.0 (Pai))
  • 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)
        ...
jzelar
sumber
3
Saya membuat tiket issuetracker.google.com/issues/129994596
Eugen Martynov
3
Saya memiliki hal yang sama setelah saya memperbarui Android Studio ke 3.4
Andrew
2
Periksa jawaban Lemberg yang berfungsi untuk saya, saya telah menghadapi masalah itu hari ini
Nicky
Sama untuk Java (tidak perlu Kotlin) setelah menginstal Android Studio 3.5.
Patapoom

Jawaban:

311

Klik Build->Clean Project

Lalu Build->Make Project

Diuji pada gradle 3.5.0-alpha3, -alpha5 dan 3.4.0 (project gradle)

classpath 'com.android.tools.build:gradle:3.5.0-alpha03'
Martin Pfeffer
sumber
1
Saya dapat mengkonfirmasi ini berfungsi baik dengan versi com.android.tools.build:gradle:3.5.0-alpha05(dengan Build-> Rebuild Projectdi AS)
kikoso
1
Sayangnya itu memerlukan peningkatan ke Android Studio 3.5, saya tidak bisa memberitahu tim saya untuk beralih ke saluran yang tidak stabil untuk pembaruan Android Studio.
void.pointer
8
Bekerja di Android Studio 3.4
Rafael
6
mencoba AndroidStudio3.5 di Mac OS, semua SDK diperbarui, menggunakan versi gradle com.android.tools.build:gradle:3.5.0, solusi ini tidak berfungsi untuk saya
Mihodi Lushan
1
mencobanya, ya, saya mendapatkan kesalahan ini. @MartinPfeffer
Mihodi Lushan
150

Untuk 3.5Pembaruan Android Studio . (Masalah yang ditandatangani APK)

Langkah 1: Saya telah menyelesaikan masalah ini dengan mengubah lokasi Folder Tujuan .

Sebelum

c:\user\folder\project\app

Setelah

c:\user\folder\project\apk


Untuk 3.4Pembaruan Android Studio .

Langkah 1: Setelah memperbarui Android Studio 3.4 Anda perlu menambahkan semua ketergantungan yang digunakan dalam modul atau pustaka di tingkat aplikasi Anda build.gradle.

Langkah 2: Bersihkan Proyek (Bangun> Bersihkan Proyek)

Langkah 3: Rebuild Project (Build> Rebuild Project)

Sekarang, Proyek Anda akan dikompilasi dengan Sempurna.

Vishrut Mavani
sumber
1
apa itu? apa yang harus saya lakukan? > Langkah 1: Setelah memperbarui Android Studio 3.4 Anda perlu menambahkan semua ketergantungan yang digunakan dalam modul atau pustaka Anda di build.gradle tingkat aplikasi Anda.
babay
1
@babay Misalkan Anda menggunakan pustaka yang menggunakan pustaka Glide. Maka Anda harus menambahkan ketergantungan Glide Anda di build.gradle tingkat App Anda juga.
Vishrut Mavani
1
@VishrutMavani Terima kasih atas jawaban Anda, tetapi saya menemukan kesalahan Android studio yang benar-benar bodoh. Saya baru saja mengubah jalur output build. Itu adalah. Solusi oleh Shuham Jain. Lihat di bawah solusinya.
james
5
Ini memperbaiki masalah saya di Android Studio v3.5 dan proyek Java. Ini adalah kejadian yang cukup standar setiap kali membangun aplikasi Android sekarang ... (1) dapatkan galat build yang tidak dapat dimengerti (2) google it (3) stack overflow (4) menerapkan solusi yang tampaknya tidak terkait dalam urutan tertentu (5) berdoa (6) ) berfungsi (7) lanjut ke langkah (1)
dodgy_coder
2
Saya tidak percaya solusi yang berfungsi untuk masalah ini sebenarnya adalah "Ubah folder tujuan." Tapi itu! ¯ \ _ (ツ) _ / ¯
mkasberg
138

UNTUK Android Studio 3.5 | 3.6

debug membangun selesai tanpa kesalahan. Selama pembuatan .apk yang ditandatangani mengarah ke kesalahan yang sama

buildOutput.apkData must not be null

solusi sederhana yang saya temukan adalah. Selama menandatangani apk setelah memasukkan kredensial penandatanganan ketika Anda menavigasi ke layar berikutnya maka ia akan meminta folder tujuan hanya mengubah jalur default.

Mari kita asumsikan jalur tujuan saat ini adalah

c: \ user \ folder \ project \ app

ubah ke

c: \ user \ folder \ project \

maka itu akan menghasilkan apk yang ditandatangani berhasil.

Tangkapan layar folder tujuan Android studio

Shubham Jain
sumber
5
Saya sangat menghargai solusi Anda. Terima kasih. Ini hanya kesalahan build sederhana dan sangat bodoh dari Android Studio.
james
2
Wow, kamu menyelamatkan hidupku dengan ini. Namun apakah ini bug di Android Studio atau proyek saya kacau?
Vijay Kumar Kanta
1
OMG, peningkatan Android Studio ke 3,5 ini membawa banyak masalah bagi saya.
Henrique Monte
1
Sangat berguna di Android 3.5.2
CodeFluid
1
Terima kasih & solusinya bagus. Saya memperbarui Android Studio bahkan kesalahan ini terjadi di Android Studio 3.6. Solusi ini menyelamatkan hari saya. Terima kasih lagi
Divakar Murugesh
49

Saya juga mendapatkan kesalahan ini, ketika mencoba "Hasilkan Signed APK" untuk versi rilis saya. Saya mencoba semua metode di atas, sayangnya tidak ada yang berhasil untuk saya.

Apa yang berhasil, pertama-tama menghasilkan versi debug yang ditandatangani dari aplikasi, dan kemudian menghasilkan lagi yang rilis.

Saya tidak tahu apa yang sebenarnya berubah atau apa masalah aslinya, tetapi berhasil. Saya harap ini akan membantu Anda juga, karena kesalahan ini cukup mengganggu ...

Kuruchy
sumber
1
Dalam kasus saya, saya perlu membuat apk rasa produk pertama (debug untuk melepaskan) untuk rasa terakhir (debug untuk melepaskan).
Buah
3
Iya!! Ini juga berhasil untuk saya. Terima kasih. Saya tidak tahu mengapa, tetapi itu terlihat seperti bug.
Doongsil
3
mencoba AndroidStudio3.5 di Mac OS, semua SDK diperbarui, menggunakan versi gradle com.android.tools.build:gradle:3.5.0, solusi ini tidak berfungsi untuk saya
Mihodi Lushan
1
Dalam kasus saya: AndroidStudio3.5, Build bundle (s) / apk (s) => Build apk (s), lalu Generate Signed APK
solo
1
Ini gila, tetapi solusi ini berhasil - saya tidak mengerti mengapa. Android Studio 3.5, Windows
cVoronin
22

Membersihkan proyek tidak membantu saya, tetapi secara manual menghapus semua folder build yang dibuat secara otomatis di semua modul membantu. masukkan deskripsi gambar di sini

Roman Nazarevych
sumber
Ini setara dengan membersihkan proyek.
devgianlu
4
Tidak, ini bukan, cobalah untuk membersihkan proyek dari Android Studio dan kemudian memeriksa direktori Aplikasi untuk builddirektori dalam penjelajah file apa pun, Anda akan melihat bahwa beberapa file masih tertinggal di sana.
Roman Nazarevych
Dalam kasus saya, saya memiliki beberapa rasa, itu berfungsi setelah saya menghapus semua folder build bersama dengan folder-folder khusus Flavour. Setelah menghapus folder, saya harus menutup proyek dan membuka kembali untuk membuatnya bekerja
Hari
mencoba AndroidStudio3.5 di Mac OS, semua SDK diperbarui, menggunakan versi gradle com.android.tools.build:gradle:3.5.0, solusi ini tidak berfungsi untuk saya
Mihodi Lushan
18

Memperbarui ke Android Studio 3.4.? , saya menerima pesannya

Penyebab: buildOutput.apkData tidak boleh nol

mencari jawaban saya menemukan prosedur:

Build -> Clean Project

tapi itu tidak berhasil, saya tahu bahwa prosedur ini akan menghapus konten ke dalam /builddirektori tetapi untuk pengalaman saya itu tidak berfungsi dalam semua kasus, jadi saya mencoba cara "mentah", menghapus direktori:

/app/build/ 

kemudian saya membangun kembali proyek dan itu berhasil.

Jorgesys
sumber
2
Ini bekerja untuk saya, tetapi saya juga harus menghapus semua <flavor>/<buildConfig>direktori (ini tentang output.jsonfile di dalamnya). Clean projectsendiri tidak menyelesaikan masalah.
javaxian
11

Saya mencoba beberapa solusi di atas tetapi tidak ada yang terjadi kemudian saya menemukan ini dan bekerja untuk saya

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

Sekarang saya dapat menghasilkan apk

Rohan Pawar
sumber
9

Semua solusi tidak bekerja dengan saya

Android Studio V 3.5

Plugin Android gradle V 3.4.2

Versi Gradle V 5.1.1

  1. Bersihkan proyek
  2. Mulai ulang Android Studio + Cache Tidak Valid
  3. Hapus folder build, debug, dan lepaskan
  4. Buat proyek
  5. Hasilkan APK yang ditandatangani

Referensi

Qays Dwekat
sumber
7

Saya sudah mencoba banyak hal untuk menyelesaikan masalah ini, tetapi tidak ada yang membantu. Saya mendapatkan kesalahan ini ketika mencoba membuat apk yang ditandatangani.

Menurunkan versi ke versi Android Studio yang lama membantu (3.4.2) berhasil, namun ini bukan solusinya.

Fungsi 'Clean Project' di AS tidak membersihkan tempat di mana apk yang Anda buat dibuat dan ada satu file yang mungkin memblokir seluruh prosedur: output.json

Coba hapus output.json dari ... / app / projectname / release / output.json

TheScriptan
sumber
5

Saya menggunakan Android Studio 3.5 beta 2 dan saya mengalami kesalahan yang sama persis tetapi hanya pada rilis saya membangun. Setelah mencoba setiap solusi lain yang saya temukan, satu-satunya cara saya dapat mengkompilasi lagi adalah kembali ke Android Studio 3.4.

amp
sumber
"Solusi" ini juga berhasil untuk saya. Turun ke AS 3.4.2, unduh di sini: developer.android.com/studio/archive dan ubah dari 3.5.0 ke: classpath 'com.android.tools.build:gradle:3.4.2'
Loadeed
4

Ini bekerja untuk saya:

  1. hapus build folder dari proyek Anda secara manual.

  2. di terminal android studio ketik perintah ini

jika pengguna windows

gradlew clean build

jika pengguna linux

./gradlew clean build
Abhishek Garg
sumber
1
mencoba AndroidStudio3.5 di Mac OS, semua SDK diperbarui, menggunakan versi gradle com.android.tools.build:gradle:3.5.0, solusi ini tidak berfungsi untuk saya
Mihodi Lushan
4

Masalah ini terjadi biasanya ketika Anda menjalankan beberapa jendela studio android dengan proyek yang berbeda.

Solusinya adalah

  • pilih proyek daripada menghapus .gradle dan bangun folder
  • daripada membersihkan dan membangun kembali proyek.

tolong ref screen shot terpasang

tolong ref screen shot terpasang

Suresh Maidaragi
sumber
mencoba AndroidStudio3.5 di Mac OS, semua SDK diperbarui, menggunakan versi gradle com.android.tools.build:gradle:3.5.0, solusi ini tidak berfungsi untuk saya
Mihodi Lushan
Dapatkah Anda mencoba File> Validasi cache / Restart setelah menghapus file .gradle yang dibuat secara otomatis dan membangun @MihodiHasanLushan
Suresh Maidaragi
4

Cukup ganti lokasi rilis / debug Apk .

EX:

/home/sanaebadi/Desktop

setelah perubahan:

/home/sanaebadi/apk
sana ebadi
sumber
3

Solusi bagi saya adalah menghapus semua file dan folder dari folder keluaran apk. Saya punya masalah ini ketika membuat apk yang ditandatangani untuk rasa "produksi" dan output.jsonfolder keluaran "fitur" menyebabkan masalah -> Android Studio 3.6 Canary 7menunjukkan kepada saya pesan kesalahan yang benar. Ini juga berfungsi sekarang untuk AS 3.5 stable dengan Gradle Plugin 3.5.0.

3dmg
sumber
3

Semua solusi tidak bekerja dengan saya.
Dalam kasus saya dari AndroidStudio 3.4+ pembaruan ke 3.5.
Dan akhirnya saya menyelesaikannya dengan memodifikasi 'Map Tujuan' menjadi pic detail "app / build / outputs / apk"

kolam
sumber
2

satu-satunya solusi yang bekerja untuk saya adalah menggunakan di root gradle saya

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

apa yang saya coba: - hapus semua folder secara manual - cache tidak valid tetapi tidak ada yang berfungsi

PS: Saya menggunakan android studio 3.5 btw

Perbarui:

sama seperti @Vishrut Mavani, mengubah folder tujuan versi rilis Anda berfungsi

tidak ada
sumber
2

Biasanya masalah ini terjadi pada pembaruan Android Studio V3.4 ke V3.5. Coba hapus debug/output.jsondan release/output.jsonfile.

Kemudian Coba langkah-langkah ini:

Langkah 1: Bersihkan Proyek (Bangun> Bersihkan Proyek)

Langkah 2: Rebuild Project (Build> Rebuild Project)

Masoud Mokhtari
sumber
2

Saya memiliki android studio 3.5.1. Bagi saya langkah-langkah di bawah ini berhasil

  1. File -> Cache / Restart Tidak Valid
  2. Setelah android studio dimulai kembali klik pada Build -> Clean project
  3. Kemudian Bangun -> Rebuild Project
Sachin Tanpure
sumber
1

Dalam kasus saya, membangun dan meluncurkan proyek dengan konfigurasi bangunan yang berbeda berhasil. Tetapi menghasilkan apk yang melempar kesalahan melempar Cause: buildOutput.apkData must not be nulldi sisi lain apk telah dibuat dan Build Output akan menampilkan tampilan cetak BUILD SUCCESSFUL. Instalasi manual berakhir dengan pesan App not installed. Kesalahan saya menggunakan compileSdkVersion 'android-P'dan setelah mengubah compileSdkVersion 28semua berjalan dengan baik.

Stanislav Bondar
sumber
1

Saya sudah mencoba semua solusi dan tidak ada yang membantu! akhirnya setelah banyak mencoba, saya mengetahuinya, ikuti saja tipsnya:

  1. salin keystrok tanda tangan Anda (yang Anda gunakan untuk melepaskan) di dalamnya yourProject/app/
  2. gradle.properties (ubah nilai yang terkait dengan kunci Anda sendiri):
    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 tingkat aplikasi (di dalam 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 tingkat aplikasi (di dalam buildTypes):
    release {
        manifestPlaceholders = [analytics_deactivated: "false"]
        minifyEnabled true
        signingConfig signingConfigs.release
        useProguard true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    5. akhirnya perintah ini:

Mac: ./gradlew clean assemble_YOUR_FAVOR_Release

menang: gradlew clean assemble_YOUR_FAVOR_Release

di mana _YOUR_FAVOR_bantuan opsional Anda, jika Anda tidak menggunakan bantuan apa pun, cukup gunakan saja assembleReleasealih-alihassemble_YOUR_FAVOR_Release

AlirezaXX
sumber
1

Masalah ini terjadi setelah memperbarui Android studio v3.4 saya ke v3.5 Sekarang, berfungsi dengan baik

Saya memperbaiki masalah ini dengan menghapus file debug / output.json dan rilis / output.json

Android Studio 3.5 compilesdkVersion 28

apk menghasilkan kerja

Pradeep P
sumber
1

Saya juga terganggu oleh bug yang sama. Tetapi mengubah tujuan apk Signed saya dari c / pengguna / proyek / aplikasi ke c / pengguna / proyek bekerja untuk saya.

Sarthak Sharma
sumber
1

1- Hapus semua bundel aplikasi (.aab) dan APK yang dihasilkan untuk semua varian.

2- Hapus folder build

3 - proyek bersih

Islam Assi
sumber
1

Hapus secara manual semua folder varian build yang ada dan folder build di folder proyek bekerja untuk saya.

Thamilvanan
sumber
0

Hasilkan APK yang Ditandatangani untuk debug , dan kemudian Anda dapat membuat APK yang ditandatangani untuk dirilis .

Dita Aji Pratama
sumber
0

Solusinya :-

1- Build -> Clean Projecttidak membantu

2- Build -> Make Projecttidak membantu

3 - restart studio android tidak membantu

4- Hapus secara manual folder Bangun dari appdan projecttidak membantu

satu-satunya solusi bagi saya adalah menghapus semua build lama dari folder tujuan

Atef Farouk
sumber
-1

Tampaknya membersihkan proyek dapat menyelesaikan masalah, tetapi bagi saya itu berhasil seperti ini.

File-> proyek sinkronisasi dengan file gradle.

brahmy adigopula
sumber