Tệp APK không tồn tại trên đĩa


224

Khi tôi đang thử ứng dụng gỡ lỗi trên Android Studio sẽ cho đầu ra nhật ký này:

Tệp APK /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk không tồn tại trên đĩa.

Tôi đã khởi động lại Android Studio, nhưng tôi không thể giải quyết vấn đề này. Làm thế nào tôi có thể giải quyết nó ? Cảm ơn bạn


9
Làm thế nào tôi có thể giải quyết nó ? biên dịch apk
Tim

1
@TimCastelijns Tôi thực sự tự hỏi nếu Android Studio không đủ thông minh để đưa tác vụ apk gỡ lỗi vào tác vụ ứng dụng gỡ lỗi. Gradle nên được thực hiện cho điều này.
Trilarion 2/12/2015

1
@Trilarion Theo mặc định, AS thực thi tác vụ assemblybleDebug của gradle để biên dịch apk gỡ lỗi. Một cái gì đó có vẻ sai ở đây, đòi hỏi phải biên dịch thủ công
Tim

2
Thêm Gradle Make-Aware đã khắc phục vấn đề này cho tôi. stackoverflow.com/a/25871525/1712417
Iammesol

2
Hãy thử thêm stackoverflow
Andy Cheng

Câu trả lời:


463

Nhấp vào tùy chọn này để giải quyết lỗi:

Chạy: Xem> Công cụ Windows> Gradle> [dự án]> Nhiệm vụ> xây dựng> xây dựng


6
Các ký tự đặc biệt trong tên thư mục dự án của bạn cũng sẽ gây ra lỗi này.
NP

50
Điều này không làm việc cho tôi cả. Tôi sẽ khuyên các câu trả lời giải thích lý do tại sao họ phải làm việc thay vì chỉ nói cho người đọc biết phải làm gì, để họ có thể hiểu / tránh / giải quyết những lỗi đó sau này.
người27

3
Bạn có thể giải thích chính xác những gì nó làm và tại sao vấn đề này xảy ra?
Hamidreza Sahraei

btw "Ký tự đặc biệt" cũng bao gồm số. Thật nực cười, lãng phí hàng tấn thời gian cho việc này. facepalm :)
alexr101

5
Nút đó không tồn tại trên phiên bản Android Studio mới nhất, nhưng tôi tin rằng đó là tùy chọn "Sync Project With Gradle Files", hoạt động với tôi.
nasch

208

Nếu bạn đang gặp phải vấn đề này sau khi cập nhật lên Android Studio V 3.1 thì hãy thử cách dưới đây.

Tôi đã phải đối mặt với vấn đề tương tự khi tôi cập nhật lên Android Studio 3.1. Tất cả các giải pháp khác tôi tìm thấy ở đây khá thủ công vì bạn phải dọn dẹp và xây dựng lại mỗi lần, điều đó không tốt chút nào. Nhưng nhờ câu trả lời của Iman Marashi ở đây, tôi đã có thể giải quyết nó.

Đi đến Chạy -> Chỉnh sửa cấu hình ...

Hãy chắc chắn rằng bạn có "Tạo lớp nhận biết" trên phần Trước khi khởi chạy:

Cấu hình chạy / gỡ lỗi

Để thêm nó, nhấp vào dấu + và chọn Nhận biết cấp độ và một cửa sổ bật lên sẽ xuất hiện, chỉ cần để trống trường văn bản và nhấp vào OKOK .


13
Đây là bản sửa lỗi cho bản cập nhật 3.1 gần đây. Đối với tôi, triệu chứng đầu tiên của vấn đề này là APK không "phản hồi" với những thay đổi trong mã. Bây giờ tôi đã rõ ràng rằng APK mới hoàn toàn không được xây dựng.
David Gay

Câu trả lời này có thể giải quyết cho tôi. Tôi đã cập nhật 3.1 và nhận được lỗi này.
ZarNi Myo Sett giành chiến thắng

Bạn là một cứu tinh.
Joel Libby

Ôi! Bạn xứng đáng được 1000 phiếu bầu cho việc này! Android Studio xứng đáng được 1000 phiếu bầu!
Câu hỏi thường gặp

Cảm ơn, đây chắc chắn là câu trả lời đúng và nên được chấp nhận
Petar Marijanovic

68

Trong trường hợp của tôi, thực thi "Dự án đồng bộ hóa với tập tin Gradle" đã giúp. Không khởi động lại Andoid Studio hay xóa bộ nhớ cache đã làm bất cứ điều gì.


1
Cảm ơn. Nó cũng giúp tôi. Không khởi động lại Andoid Studio hay xóa bộ nhớ cache đều không giúp ích.
ivan.panasiuk

Có phải mẹo cho tôi sau khi thay đổi tập lệnh đặt tên trong một tệp riêng biệt so với bình thường của tôi build.gradle, vì vậy Android Studio không tự động nhận thay đổi và nhắc tôi đồng bộ hóa.
Magnus W

Đây là câu trả lời thực sự.
azizbekian

3
File -> Sync Project with Gradle Files stackoverflow.com/a/19932896/2527204
Marlon

Có vấn đề này cố gắng để chạy một bài kiểm tra đơn vị. Đó là yêu cầu một thiết bị để chạy thử nghiệm Đơn vị.
Sergio

34

Nếu bạn chỉ muốn biết kết luận, xin vui lòng đi đến phần cuối cùng. Cảm ơn.

Thông thường khi xây dựng dự án thất bại, một số thủ thuật phổ biến bạn có thể thử:

  • Xây dựng -> Dự án sạch
  • Kiểm tra các biến thể xây dựng
  • Khởi động lại Android Studio (như bạn đã đề cập)

Nhưng để cụ thể hơn cho vấn đề của bạn - khi Android Studio không thể tìm thấy tệp APK trên đĩa. Điều đó có nghĩa là Android Studio đã thực sự xây dựng thành công dự án và cũng đã tạo APK, tuy nhiên, vì một số lý do, Android Studio không thể tìm thấy tệp.

Trong trường hợp này, vui lòng kiểm tra thư mục in theo nhật ký. Nó hữu ích.

Ví dụ:

Với Bản xem trước Android Studio 2.0 (bản dựng 143.2443734).

  1. Thanh toán cho một cam kết cụ thể (để nó tách ra khỏi đầu): kiểm tra git [commit_hash]
  2. Chạy dự án
  3. Android Studio cho biết: Tệp APK / Người dùng / MyApplicationName / app / build / output / apk / app-debug-HEAD.apk không tồn tại trên đĩa
  4. Đi đến thư mục, có một tệp thực sự được đặt tên: app-debug- (HEAD.apk (có thêm dấu ngoặc đơn)
  5. Chạy chi nhánh git

    * (ĐẦU tách ra ở 1a2bfff)

Vì vậy, ở đây bạn có thể thấy, do lỗi tập lệnh xây dựng lớp của tôi , việc đặt tên tệp bằng cách nào đó đã sai.

Ví dụ trên chỉ là một kịch bản có thể dẫn đến cùng một vấn đề, nhưng không cần thiết phải là nguyên nhân gốc rễ giống như của bạn.

Do đó, tôi thực sự khuyên bạn nên kiểm tra thư mục (để tìm sự khác biệt) và kiểm tra tập lệnh build.gradle của bạn (bạn có thể thay đổi tên apk ở đó, giống như bên dưới):

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);
        }
    }

2
Vấn đề của tôi là tôi đã thêm phiên bản ứng dụng vào tên APK nhưng phiên bản ứng dụng có định dạng xyz và "." (dấu chấm) trong việc đặt tên đã gây ra lỗi. Vì vậy, hãy nhớ không có dấu chấm nào khác ngoài dấu chấm trước apk :)
DraganescuValentin

20

Đảm bảo rằng bạn không có dấu nháy đơn hoặc & trong đường dẫn của bạn


'&' Là thứ ngăn cản tôi biên dịch. Cảm ơn @Rim Gazzeh
Marka A

19

Đảm bảo rằng có các cấu hình Make in Run / Debugging nhận biết phân loại >> trước khi khởi chạy :

Thích hình ảnh này


17

Tôi đã chứng kiến ​​một vấn đề tương tự thường là khi tôi chuyển đổi chi nhánh git. Đối với tôi, tắt Android Studio rm -rfv ~/Library/Caches/AndroidStudio*và khởi động lại Android Studio là tấm vé.


Vấn đề tương tự của tôi đã được giải quyết bằng phương pháp này. Tôi đổi tên các tệp apk trong bản dựng lớp để nối số phiên bản vào tệp, cố gắng gỡ lỗi hoạt động chính của tôi là cố chạy tên tệp apk sai (số phiên bản trước). Không chắc chắn khi điều này bắt đầu nhưng nó đã hoạt động tốt cho đến khi nó không.
David

Android studio cache nó là một vấn đề rất lớn!
GeekHades

Nó là. Tôi vừa (một lần nữa) tăng số bản dựng của mình, điều này thay đổi tên tệp apk, một lần nữa tôi gặp vấn đề này.
David

13

Trong Android Studio 3.1.1, chọn Tệp | Dự án đồng bộ hóa với tập tin Gradle.

Trong Android Studio 3, chọn Tệp | Làm cho đồng bộ.

Sau đó chạy lại dự án của bạn.


Trong Studio v3.1.1, Tệp -> Dự án đồng bộ hóa với tệp Gradle. và bạn tốt để đi
Napolean

Sau đó, trong một trường trên thanh công cụ trên cùng (có icones), tiếp theo từ biểu tượng búa, bạn phải trả lại 'ứng dụng', trong phần thả xuống cấu hình
CodeToLife

11

Năm nay là năm 2018. Phiên bản Android Studio là 3.2.0 alpha3 và chúng tôi vẫn gặp phải sự cố này. Vì không có cái nào ở trên làm việc cho tôi, đây là 2 xu của tôi:

Mỗi khi điều này xảy ra, tôi chỉ tạo apk từ dòng lệnh:

gradlew assembleDebug

CẬP NHẬT

Xóa thư mục .AndroidStudio[version]và mất tất cả các tùy chọn và bộ nhớ cache của bạn ... dường như để giải quyết vấn đề


1
Nhưng điều này chỉ hoạt động cho một bản dựng? nếu bạn thực hiện thêm các thay đổi và nhấn nút 'phát', nó chỉ đẩy apk cũ và không xây dựng lại cho các thay đổi. Thật khó chịu, wtf họ đã nghĩ
xử

7

Trong trường hợp của tôi, tôi đã sử dụng một ký tự đặc biệt trong đường dẫn tệp ứng dụng của mình. Tôi đã đóng Android Studio và xóa ký tự ' khỏi đường dẫn tệp ứng dụng của mình. Mọi thứ hoạt động tốt khi tôi mở lại dự án.


Vâng lý tưởng Android Studio phải đủ thông minh để ngăn người dùng sử dụng ký tự đặc biệt trong đường dẫn tệp của họ. Hoặc tốt hơn là tôi nên tự mình tuân theo các thực hành lập trình tốt :)
Mã bất tử

6

Tôi đã giải quyết việc xây dựng apk bằng tùy chọn Build từ cửa sổ trên cùng và Build APK. Không cần phải làm một cái gì đó kỳ lạ.


6

Đối với người dùng Unix như Linux (Linux / MacOs X), thay vì xóa ~ / .gradle / caches /, trong dòng lệnh làm:

$ cd path_to_you_project
$ touch build.gradle

Sau đó yêu cầu Android Studio xây dựng APK, nó sẽ tự thiết lập lại bộ đệm.


5

Vấn đề của tôi là tôi đã thêm số phiên bản vào APK. Thay đổi số phiên bản và đồng bộ hóa lại Gradle đã khắc phục sự cố cho tôi.

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)
    }
}

Bạn đã gọi appendVersionNameVersionCode trong lớp chưa?
Dhrupal

3

Xây dựng ---> Xây dựng APK (và) và chắc chắn rằng nó hoạt động


2

Tệp -> Bộ nhớ cache không hợp lệ / Khởi động lại


2

Nếu bạn đã thử tất cả các câu trả lời ở trên và nó không hoạt động, hãy thử tắt tính năng "Chạy ngay lập tức". Điều này đã giúp tôi sau tất cả các nỗ lực.

Tệp -> Cài đặt -> Xây dựng, Thực thi, Triển khai -> Chạy ngay lập tức -> Bỏ chọn hộp kiểm ở đó


2

Tôi cũng có vấn đề đó, sau khi làm sạch bản dựng. Đối với tôi giải pháp là tôi chỉ cần đồng bộ hóa lớp và nó hoạt động với tôi.


2

Trong trường hợp của tôi, vấn đề là cấu hình gỡ lỗi trở nên không hợp lệ bằng cách nào đó, ngay cả tên phương thức kiểm tra, lớp hoặc gói không thay đổi.

Tôi đã xóa các cấu hình khỏi Run-> Chỉnh sửa cấu hình, tại đây:

nhập mô tả hình ảnh ở đây

Android studio sẽ tự động tạo một cái mới.


Sau đó, bạn cần nhấp vào dự án File / Re-Import Gradle. Điều này sẽ tạo lại cấu hình chạy đã xóa.
Juan Ignacio Barisich

1

Đối mặt với cùng một vấn đề với lớp 1.5

Tôi đã phải làm sạch các tập tin xây dựng:

Xây dựng -> Dự án sạch

Và xây dựng APK để buộc biên dịch và đồng bộ hóa đầy đủ các tệp lớp:

Xây dựng -> Xây dựng APK

Tôi vẫn không biết tại sao hoặc làm thế nào nó xảy ra tho.


1

nếu bạn đang sử dụng Linux, hãy thử thiết lập quyền ghi vào thư mục ứng dụng / bản dựng.


1

Tôi đã từng gặp vấn đề tương tự. đó là do tên giả trong đường dẫn Có một Nhân vật đặc biệt trong đường dẫn như thế này: C: \ User \ My App \ Projekte-Tablet & Handy tôi đã xóa ký tự "&" và nó hoạt động tốt.


1

Vấn đề của tôi là bao gồm vài phút trong tên tệp - nó tìm appname_debug_0.9.0.1_170214_2216.apk khi tệp được tạo là appname_debug_0.9.0.1_170214_2217.apk vì vậy mã tên tệp đầu ra (được lấy từ nơi khác) rõ ràng được gọi từ hai điểm khác nhau trong xây dựng.

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)
        }
    }

khối này từ đâu đến?
Nerius Jok

Đó là từ một số luồng trao đổi ngăn xếp khác từ khi tôi mới thiết lập dự án (và có rất ít ý tưởng về những gì tôi đang làm - không có gì thay đổi ở đó). Vì phần này của Gradle đã được thay đổi một vài lần nên nó có khả năng là mã lỗi thời.
Ian Spencer

1

Vấn đề đối với tôi là bằng cách nào đó nó thực sự không thể tìm thấy apk, trong khi apk tồn tại.

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

Tất cả những gì tôi phải làm là nhấp chuột phải vào đường dẫn tương đối apk-copy và chỉ

adb install -r <paste of relative path>

Và apk đã được cài đặt và tốt để đi. Vấn đề này đã xảy ra trên OSX đối với tôi.


1

Được giải quyết vào tháng 5 năm 2018 với Android Studio 3.1 mới. Xóa .gradle, .idea và xây dựng các thư mục trong thư mục ứng dụng của bạn. Sau đó thử chạy lại và bạn sẽ không thấy lỗi.


1

Đồng bộ hóa, làm sạch, xây dựng lại và vô hiệu hóa bộ nhớ cache và khởi động lại

Không ai trong số họ làm việc cho tôi.

Tôi đã xóa các tệp APK và output.json trong thư mục phát hành và thư mục gỡ lỗi và sau đó thử đồng bộ hóa, dọn dẹp và xây dựng, sau đó nó hoạt động tốt.


0

Tôi thay đổi build.gradle gửi thông tin litle và nhấp vào "Sync Now", chỉ cần ok.


0

Xóa thư mục ~ / .gradle / caches /. Bạn có thể làm điều này trong khi Android Studio được mở. (Tham khảo cài đặt sai tên gói) Nhấn biểu tượng "Đồng bộ hóa dự án với các tệp Gradle" trên Android Studio Chạy dự án và đường dẫn từ xa sẽ chính xác.

Tham khảo câu trả lời @ Android Studio bị nhầm tên gói khi chạy .apk


0

Đảm bảo rằng trong đường dẫn được tạo trong nhật ký của bạn - trong trường hợp của bạn:

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

thư mục "đầu ra" thực sự có một thư mục "apk".

Đó là vấn đề của tôi, nếu nó không có ở đó, bạn sẽ cần chạy tác vụ "assemblybleRelease" bằng cách làm theo ảnh chụp màn hình bên dưới;

Các bước để chạy tác vụ lắp ráp gradleRelease Sau đó, thư mục sẽ được tạo ra.


0

Không có gì ở trên giúp tôi, nhưng tôi đã tìm ra điều này bằng cách chuyển sang một hương vị khác trong bảng điều khiển Công cụ xây dựng và sau đó chuyển trở lại cần thiết.


0

sửa đổi tệp: build.gradle (thư mục ứng dụng). thực tế: bạn không nên thay đổi tệp này, chỉ bằng cách này để nhận các mẹo đồng bộ hóa, sau đó đồng bộ hóa dự án.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.