File APK tidak ada pada disk

224

Ketika saya mencoba aplikasi debug di Android Studio memberikan output log ini:

File APK / Pengguna / MyApplicationName/app/build/outputs/apk/app-debug.apk tidak ada pada disk.

Saya memulai ulang Android Studio, tetapi saya tidak bisa menyelesaikan masalah ini. Bagaimana saya bisa menyelesaikannya? Terima kasih

sorunluadam
sumber
9
Bagaimana saya bisa menyelesaikannya? kompilasi apk
Tim
1
@TimCastelijns Saya sebenarnya bertanya-tanya apakah Android Studio tidak cukup cerdas untuk memasukkan tugas membuat debug apk ke dalam tugas aplikasi deb. Gradle harus dibuat untuk ini.
Trilarion
1
@Trilarion Secara default AS menjalankan tugas assembleDebug gradle yang mengkompilasi apk debug. Sepertinya ada yang salah di sini, yang memerlukan kompilasi manual
Tim
2
Menambahkan Gradle Make-Aware memperbaiki masalah ini untuk saya. stackoverflow.com/a/25871525/1712417
Iammesol
2
Coba tambahkan "Gradle Make-Aware" stackoverflow.com/questions/18256177/…
Andy Cheng

Jawaban:

463

Klik opsi ini untuk menyelesaikan kesalahan:

Jalankan: Lihat> Alat Windows> Gradle> [project]> Tasks> build> build

指尖 上 的 Android
sumber
6
Karakter khusus dalam nama direktori proyek Anda juga akan membuang kesalahan ini.
NP
50
Ini sama sekali tidak berhasil untuk saya. Saya akan menyarankan jawaban yang menjelaskan mengapa mereka seharusnya bekerja daripada hanya memberi tahu pembaca apa yang harus dilakukan, sehingga mereka dapat memahami / menghindari / menyelesaikan kesalahan-kesalahan itu nanti.
person27
3
Apakah Anda akan menjelaskan apa sebenarnya yang dilakukan dan mengapa masalah ini terjadi?
Hamidreza Sahraei
btw "Karakter khusus" juga termasuk angka. Ini konyol, membuang banyak waktu untuk ini. facepalm :)
alexr101
5
Tombol itu tidak ada di Android Studio versi terbaru, tetapi saya yakin itu adalah opsi "Sinkronkan Proyek dengan File Gradle", yang berhasil bagi saya.
nasch
208

Jika Anda menghadapi masalah ini setelah pembaruan ke Android Studio V 3.1 kemudian coba di bawah ini.

Saya menghadapi masalah yang sama ketika saya memperbarui ke Android Studio 3.1. Semua solusi lain yang saya temukan di sini cukup manual karena Anda harus membersihkan dan membangun kembali setiap waktu, itu tidak baik sama sekali. Tetapi berkat jawaban Iman Marashi di sini saya bisa menyelesaikannya.

Pergi ke Jalankan -> Edit Konfigurasi ...

Pastikan Anda memiliki "Make Gradle-aware" pada bagian Sebelum peluncuran:

Jalankan / Konfigurasi Debug

Untuk menambahkannya klik tanda + dan pilih Gradle-aware Make dan sembulan akan muncul, biarkan bidang teks kosong dan klik OK dan OK .

Tujuh
sumber
13
Ini adalah perbaikan untuk pembaruan 3.1 terbaru. Bagi saya, gejala pertama dari masalah ini adalah APK yang tidak "merespons" perubahan kode. Sekarang jelas bagi saya bahwa APK baru tidak membangun dengan baik sama sekali.
David Gay
Jawaban ini dapat menyelesaikan untuk saya. Saya memperbarui 3.1 dan mendapatkan kesalahan ini.
ZarNi Myo Sett Menang
Ayahmu adalah penyelamat.
Joel Libby
WOW! Anda berhak mendapatkan 1.000 suara untuk ini! Android Studio layak mendapat 1.000 suara!
1QuickQuestion
Terima kasih, ini jelas jawaban yang tepat dan harus diterima
Petar Marijanovic
68

Dalam kasus saya, menjalankan "Sinkronkan Proyek dengan File Gradle" membantu. Baik me-restart Andoid Studio maupun membersihkan cache tidak melakukan apa-apa.

Bartek
sumber
1
Terima kasih. Ini membantu saya juga. Tidak me-restart Andoid Studio atau membersihkan cache tidak membantu.
ivan.panasiuk
Melakukan trik untuk saya setelah mengubah skrip penamaan yang ada di file terpisah dari normal saya build.gradle, jadi Android Studio tidak secara otomatis mengambil perubahan dan meminta saya untuk menyinkronkan.
Magnus W
Inilah jawaban sebenarnya.
azizbekian
3
File -> Sync Project with Gradle Files stackoverflow.com/a/19932896/2527204
Marlon
Apakah masalah ini mencoba menjalankan tes Unit. Itu meminta perangkat untuk menjalankan tes Unit.
Sergio
34

Jika Anda hanya ingin tahu kesimpulannya, silakan ke bagian terakhir. Terima kasih.

Biasanya ketika membangun proyek gagal, beberapa trik umum yang bisa Anda coba:

  • Bangun -> Proyek Bersih
  • Periksa Varian Bangun
  • Mulai ulang Android Studio (seperti yang Anda sebutkan)

Tetapi untuk lebih spesifik dengan masalah Anda - ketika Android Studio tidak dapat menemukan file APK pada disk. Ini berarti bahwa Android Studio telah benar-benar berhasil membangun proyek, dan juga menghasilkan APK, namun, untuk beberapa alasan, Android Studio tidak dapat menemukan file tersebut.

Dalam hal ini, silakan periksa direktori cetak sesuai dengan log. Ini sangat membantu.

Sebagai contoh:

Dengan Pratinjau Android Studio 2.0 (build 143.2443734).

  1. Checkout ke commit tertentu (sehingga terlepas dari head): git checkout [commit_hash]
  2. Jalankan proyek
  3. Android Studio memberi tahu: File APK / Pengguna / MyApplicationName / app / build / outputs / apk / app-debug-HEAD.apk tidak ada pada disk
  4. Pergi ke direktori, ada file yang sebenarnya bernama: app-debug- (HEAD.apk (dengan tanda kurung tambahan)
  5. Jalankan cabang git

    * (KEPALA terlepas pada 1a2bfff)

Jadi di sini Anda bisa melihat, karena kesalahan skrip membangun gradle saya , penamaan file entah bagaimana salah.

Contoh di atas hanyalah satu skenario yang dapat menyebabkan masalah yang sama, tetapi tidak perlu menjadi penyebab utama yang sama dengan Anda.

Akibatnya, saya sangat menyarankan Anda untuk memeriksa direktori (untuk menemukan perbedaannya), dan memeriksa skrip build.gradle Anda (Anda dapat mengubah nama apk di sana, seperti di bawah ini):

applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def newFileName = "whatever you want to name it";
            def apk = output.outputFile;
            output.outputFile = new File(apk.parentFile, newFileName);
        }
    }
Jing Li
sumber
2
Masalah saya adalah saya menambahkan versi aplikasi dalam nama APK tetapi versi aplikasi memiliki format xyz dan "." (titik) dalam penamaan menyebabkan kesalahan. Jadi ingat tidak ada titik-titik lain selain yang sebelumnya apk :)
DraganescuValentin
20

Pastikan Anda tidak memiliki tanda kutip atau & di jalur Anda

Rim Gazzah
sumber
Tanda & amp; amp; amp; amp; apa yang membuat saya dari kompilasi Terima kasih @Rim Gazzeh
Marka A
19

Pastikan bahwa ada konfigurasi Make in Run / Debugging yang sadar Grading >> sebelum meluncurkan bagian:

Seperti gambar ini

Iman Marashi
sumber
17

Saya menyaksikan masalah serupa biasanya ketika saya mengganti cabang git. Bagi saya mematikan Android Studio rm -rfv ~/Library/Caches/AndroidStudio*dan me-restart Android Studio adalah tiketnya.

pengguna213493
sumber
Masalah saya yang serupa diselesaikan dengan metode ini. Saya mengganti nama file apk dalam gradle build untuk menambahkan nomor versi ke file, mencoba men-debug aktivitas utama saya mencoba menjalankan nama file apk yang salah (nomor versi sebelumnya). Tidak yakin kapan ini dimulai tetapi bekerja dengan baik sampai tidak.
David
Cache studio Android itu adalah masalah yang sangat besar!
GeekHades
Ini. Saya baru saja (lagi) menambah nomor build saya, ini mengubah nama file apk, lagi saya punya masalah ini.
David
13

Di Android Studio 3.1.1 pilih File | Sinkronkan Proyek dengan File Gradle.

Di Android Studio 3, pilih File | Sinkronkan.

Kemudian jalankan proyek Anda lagi.

cinta hidup
sumber
Di Studio v3.1.1, File -> Sinkronkan Proyek dengan File Gradle. dan Anda baik untuk pergi
Napolean
Kemudian di bidang di bilah alat atas (dengan es), di sebelah berikutnya dari ikon palu Anda harus mengembalikan 'aplikasi', dalam dropdown konfigurasi
CodeToLife
11

Tahun ini adalah 2018. Versi Android Studio adalah 3.2.0 alpha3 dan kami masih mendapatkan masalah ini. Karena tidak ada satu pun di atas yang berfungsi untuk saya, inilah 2 sen saya:

Setiap kali ini terjadi, saya hanya menghasilkan apk dari baris perintah:

gradlew assembleDebug

MEMPERBARUI

Menghapus folder .AndroidStudio[version]dan kehilangan semua preferensi dan cache Anda ... tampaknya menyelesaikan masalah

Androiderson
sumber
1
tetapi ini hanya berfungsi untuk satu bangunan? jika Anda membuat perubahan lebih lanjut dan menekan tombol 'play', itu hanya mendorong apk lama dan tidak membangun kembali untuk perubahan. Begitu menyebalkan, apa yang mereka pikirkan
behelit
7

Dalam kasus saya, saya menggunakan karakter khusus di jalur file aplikasi saya. Aku menutup Android Studio dan dihapus ' karakter dari saya path file aplikasi. Semuanya bekerja dengan baik ketika saya membuka kembali proyek.

Kode Abadi
sumber
Ya idealnya Android Studio harus cukup pintar untuk mencegah pengguna menggunakan karakter khusus di jalur file mereka. Atau lebih baik saya harus mengikuti praktik pemrograman yang baik sendiri :)
Immortal Code
6

Saya telah memecahkan masalah membangun apk menggunakan opsi Build dari jendela atas dan Build APK. Tidak perlu melakukan sesuatu yang aneh.

Mun0n
sumber
6

Untuk pengguna seperti Unix (Linux / MacOs X), alih-alih menghapus ~ / .gradle / cache /, di baris perintah lakukan:

$ cd path_to_you_project
$ touch build.gradle

Kemudian minta Android Studio untuk membangun APK, itu akan mengatur ulang cache gradle itu sendiri.

Jean-Marc Delafont
sumber
5

Masalah saya adalah saya menambahkan nomor versi ke APK. Mengubah nomor versi dan menyinkronkan kembali Gradle memperbaiki masalah untuk saya.

def appendVersionNameVersionCode(variant, defaultConfig) {
    variant.outputs.each { output ->
        if (output.zipAlign) {
            def file = output.outputFile
            def removeApp = file.name.replace("app-", "")
            def removeType = removeApp.replace("-release", "")
            def fileName = removeType.replace(".apk", "." + defaultConfig.versionName + ".apk")
            output.outputFile = new File(file.parent, fileName)
        }

        def file = output.packageApplication.outputFile
        def removeApp = file.name.replace("app-", "")
        def removeType = removeApp.replace("-release", "")
        def fileName = removeType.replace(".apk", "." + defaultConfig.versionName + ".apk")
        output.packageApplication.outputFile = new File(file.parent, fileName)
    }
}
Lou Morda
sumber
Sudahkah Anda memanggil appendVersionNameVersionCode secara gradle sendiri?
Dhrupal
3

Bangun ---> Bangun APK dan pastikan itu berfungsi

Kadir altınok
sumber
2

File -> Cache / Restart Tidak Valid

dvrm
sumber
2

Jika Anda mencoba semua jawaban di atas dan tidak berhasil coba nonaktifkan fitur "Instant Run". Yang ini membantu saya setelah semua upaya.

File -> Pengaturan -> Build, Eksekusi, Deployment -> Run Instan -> Hapus centang kotak centang di sana

AnZ
sumber
2

Saya juga mendapat masalah itu, setelah membersihkan bangunan. Bagi saya solusinya adalah saya hanya menyinkronkan gradle dan itu berhasil untuk saya.

u_pendra
sumber
2

Dalam kasus saya masalahnya adalah konfigurasi debug menjadi tidak valid entah bagaimana, bahkan nama metode pengujian, kelas atau paket tidak berubah.

Saya menghapus konfigurasi dari Run-> Edit Configurations, di sini:

masukkan deskripsi gambar di sini

Studio Android akan membuat yang baru secara otomatis.

MiguelSlv
sumber
Maka Anda perlu mengklik proyek File / Re-Import Gradle. Ini akan membuat ulang konfigurasi proses yang dihapus.
Juan Ignacio Barisich
1

Menghadapi masalah yang sama dengan gradle 1.5

Saya harus membersihkan file build:

Bangun -> Proyek bersih

Dan buat APK untuk memaksa kompilasi dan sinkronisasi penuh file gradle:

Build -> Build APK

Saya masih tidak tahu mengapa atau bagaimana hal itu terjadi.

Simon PA
sumber
1

jika Anda menggunakan Linux, coba atur izin menulis ke folder app / build.

Catalin Clabescu
sumber
1

saya punya masalah yang sama. itu karena nama palsu di jalan. ada Karakter khusus di jalur seperti ini: C: \ User \ My App \ Projekte-Tablet & Handy saya menghapus karakter "&" dan berfungsi dengan baik.

Orientos
sumber
1

Masalah saya termasuk menit dalam nama file - mencari appname_debug_0.9.0.1_170214_2216.apk ketika file yang dihasilkan adalah appname_debug_0.9.0.1_170214_2217.apk sehingga kode nama file output (diambil dari tempat lain) jelas dipanggil dari dua titik berbeda dalam membangun.

applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def project = "appname"
            def SEP = "_"
    //        def flavor = variant.productFlavors[0].name
            def buildType = variant.variantData.variantConfiguration.buildType.name
            def version = variant.versionName
            def date = new Date();
            def formattedDate = date.format('yyMMdd_HHmm')

            def newApkName = project + SEP + /*flavor + */ SEP + buildType + SEP + version + SEP + formattedDate + ".apk"

            output.outputFile = new File(output.outputFile.parent, newApkName)
        }
    }
Ian Spencer
sumber
darimana blok ini?
Nerius Jok
Itu dari beberapa thread pertukaran pertukaran lain dari ketika saya pertama kali menyiapkan proyek (dan memiliki sedikit gagasan tentang apa yang saya lakukan - tidak ada yang berubah di sana). Karena bagian Gradle ini telah diubah beberapa kali, kemungkinan kode itu sudah usang sekarang.
Ian Spencer
1

Masalahnya bagi saya adalah entah bagaimana itu benar-benar tidak dapat menemukan apk, sementara apk ada.

The APK file /Users/Paul/AndroidStudioProjects/android-tv-launcher/ui/build/outputs/apk/nameofapk.apk does not exist on disk.
Error while Installing APK

Yang harus saya lakukan, adalah klik kanan pada path relatif apk-copy, dan adil

adb install -r <paste of relative path>

Dan apk diinstal dan bagus untuk pergi. Masalah ini terjadi pada OSX untuk saya.

Boldijar Paul
sumber
1

Diselesaikan pada bulan Mei 2018 dengan Android Studio 3.1 yang baru. Hapus .gradle, .idea dan buat direktori di dalam folder aplikasi Anda. Kemudian coba jalankan lagi dan Anda tidak akan melihat kesalahan.

Gerardo Suarez
sumber
1

Sinkronkan, Bersihkan, Buat Kembali, dan Batalkan Cache dan Mulai Ulang

Tak satu pun dari mereka yang bekerja untuk saya.

Saya telah menghapus file APK dan output.json di folder rilis dan folder debug dan kemudian mencoba menyinkronkan, membersihkan, dan membangun, kemudian bekerja dengan baik.

GiridharaSPK
sumber
0

Saya mengubah file build.gradle menjadi info litle, dan klik "Sinkronkan Sekarang", ok saja.

凤 清 云
sumber
0

Hapus direktori ~ / .gradle / cache /. Tidak apa-apa untuk melakukan ini saat Android Studio dibuka. (Lihat pm menginstal nama paket yang salah) Tekan ikon "Sinkronkan proyek dengan file Gradle" di Android Studio Jalankan proyek dan jalur jarak jauh akan benar.

Rujuk jawaban @ Android Studio salah nama paket saat menjalankan .apk

topeng
sumber
0

Pastikan bahwa di jalur yang dihasilkan di log -dalam kasus Anda:

/Pengguna/MyApplicationName/app/build/outputs/apk/app-debug.apk

folder "outputs" memang memiliki folder "apk".

Itu masalah saya, jika tidak ada di sana, Anda harus menjalankan tugas "assembleRelease" secara bertahap dengan mengikuti tangkapan layar di bawah ini;

Langkah-langkah untuk menjalankan tugas assembleRelease gradle Maka folder tersebut akan dibuat.

Amgad
sumber
0

Tidak ada yang membantu saya di atas, tapi saya menemukan ini dengan beralih ke rasa lain di panel Alat Bangun dan kemudian beralih kembali ke yang diperlukan.

Dmytro Karataiev
sumber
0

ubah file: build.gradle (direktori aplikasi). pada kenyataannya: Anda tidak harus mengubah file ini, hanya dengan ini untuk mendapatkan tips sinkronisasi, lalu sinkronkan proyek.

兰 坡 阳
sumber