Файл APK не існує на диску


224

Коли я намагаюся налагоджувати додаток на Android Studio, видає цей журнал:

Файл APK /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk не існує на диску.

Я перезапустив Android Studio, але не можу вирішити цю проблему. Як я можу це вирішити? Дякую


9
Як я можу це вирішити? скласти apk
Тім

1
@TimCastelijns Насправді мені цікаво, чи Android Studio недостатньо розумний, щоб включити задачу apk для створення налагодження у завдання програми deb. Для цього слід зробити Gradle.
Триларіон

1
@Trilarion За замовчуванням AS виконує завдання gradle's assembleDebug, що компілює apk для налагодження. Щось здається не так, для чого потрібна компіляція вручну
Тім

2
Додавання Gradle Make-Aware вирішило цю проблему для мене. stackoverflow.com/a/25871525/1712417
Iammesol

2
Спробуйте додати "Gradle Make-Aware" stackoverflow.com/questions/18256177/…
Енді Ченг,

Відповіді:


463

Клацніть цю опцію, щоб вирішити помилку:

Запустіть: Перегляд> Інструмент Windows> Gradle> [проект]> Завдання> build> build


6
Спеціальні символи в імені каталогу вашого проекту також призведуть до помилки.
NP

50
Це взагалі не працювало для мене. Я б порадив відповіді, які пояснюють, чому вони повинні працювати, а не просто розповідати читачеві, що робити, щоб потім зрозуміти / уникнути / вирішити ці помилки.
особа27

3
Ви б пояснили, що саме це робить і чому ця проблема трапилась?
Хамідреза Сахраї

btw "Спеціальні символи" також містять цифри. Це смішно, витрачається багато часу на це. facepalm :)
alexr101

5
Цієї кнопки не існує в останній версії Android Studio, але я вважаю, що це варіант "Синхронізувати проект з файлами Gradle", який працював для мене.
нащ

208

Якщо ви зіткнулися з цією проблемою після оновлення до Android Studio V 3.1, то спробуйте нижче.

З цією ж проблемою я стикався, коли переходив на Android Studio 3.1. Усі інші рішення, які я тут знайшов, були досить ручними, тому що ви повинні щоразу чистити та перебудовувати, що зовсім не добре. Але завдяки відповіді Імана Мараші тут я зміг її вирішити.

Перейдіть до запуску -> Редагувати конфігурації ...

Переконайтеся, що у розділі Перед запуском у вас є "Зробити відомості про Gradle":

Запуск / налагодження конфігурацій

Для того, щоб додати його натисніть + знак і виберіть Gradle-обізнаний Марка і з'явиться спливаюче, просто залиште текстове поле порожнім і натисніть OK і OK .


13
Це виправлення недавнього оновлення 3.1. Для мене першим симптомом цього питання стало те, що АПК не "відповідала" на зміни коду. Тепер мені зрозуміло, що новий APK взагалі не будував належним чином.
Девід Гей

Ця відповідь може вирішити для мене. Я оновив 3.1 і отримав цю помилку.
ZarNi Myo Sett Win

Ви, ваш провідник, є рятувальником життя.
Джоель Ліббі

ОЦЕ ТАК! Ви заслуговуєте на це 1000 голосів! Android Studio заслуговує на 1000 голосів!
1QuickQuestion

Дякую, це, безумовно, правильна відповідь і має бути прийнятою
Петро Мар’янович

68

У моєму випадку допомогала програма "Синхронізація проекту з файлами Gradle". Ні перезапуск Andoid Studio, ні очищення кеша нічого не зробили.


1
Дякую. Це також допомагає мені. Ні перезапуск Andoid Studio, ні очищення кеша не допомогли.
ivan.panasiuk

Зробив фокус для мене після зміни сценарію іменування, який знаходиться в окремому файлі від мого звичайного build.gradle, тож Android Studio автоматично не підходив до зміни та запропонував мені синхронізувати.
Magnus W

Це справжня відповідь.
азізбекіян

3
File -> Sync Project with Gradle Files stackoverflow.com/a/19932896/2527204
Марлон,

Якщо ця проблема намагалася запустити тест Unit. Він просив пристрій запустити тест Unit.
Серхіо

34

Якщо ви просто хочете знати висновок, перейдіть до останнього розділу. Дякую.

Зазвичай, коли проект не вдається, ви можете спробувати декілька загальних прийомів:

  • Збірка -> Очистити проект
  • Перевірте варіанти збірки
  • Перезапустіть Android Studio (як ви згадали)

Але якщо бути більш точним для вашої проблеми - коли Android Studio не змогла знайти файл APK на диску. Це означає, що Android Studio фактично успішно побудував проект, а також створив APK, однак, чомусь Android Studio не в змозі знайти файл.

У цьому випадку перевірте надрукований каталог відповідно до журналу. Це корисно.

Наприклад:

За допомогою Android Studio 2.0 Preview (збірка 143.2443734).

  1. Оформити замовлення на певний фіксатор (щоб він від'єднався від голови): git checkout [commit_hash]
  2. Запустити проект
  3. Android Studio розповідає: Файл APK / Користувачі / MyApplicationName / app / build / outputs / apk / app-debug-HEAD.apk не існує на диску
  4. Перейдіть до каталогу, там є власне файл з назвою: app-debug- (HEAD.apk (з додатковою дужкою))
  5. Виконати гіт гіт

    * (HEAD окремо від 1a2bfff)

Отже, тут ви могли побачити, через помилку мого скрипту buildle , названня файлів якось неправильно.

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

Як результат, я настійно рекомендую вам перевірити каталог (щоб знайти різницю) та перевірити скрипт build.gradle (ви можете змінити ім'я apk там, як-от нижче):

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
Моя проблема полягала в тому, що я додавав версію програми в назві APK, але версія має формат xyz та "". (крапка) в називанні викликала помилки. Тому не пам’ятайте жодних інших крапок, крім однієї перед apk :)
DraganescuValentin

20

Переконайтесь, що у вас немає апострофа або & на вашому шляху


"&" - це те, що стримувало мене від складання. Дякуємо @Rim Gazzeh
Marka A

19

Перед запуском розділу переконайтеся, що існує конфігурація Make in Run / Debugging >>, що обізнана з оцінкою .

Подобається це зображення


17

Я був свідком подібного питання, як правило, коли я перемикав гіт кишки. Для мене закриття Android Studio rm -rfv ~/Library/Caches/AndroidStudio*та перезапуск Android Studio - це квиток.


Моє подібне питання було вирішено цим методом. Я перейменував apk-файли в збірці gradle, щоб додати номер версії до файлу, намагаючись налагодити основну діяльність, намагався запустити неправильне ім’я файлу apk (номер попередньої версії). Не впевнений, коли це почалося, але він працював нормально, поки не стався.
Девід

Кеш Android студії - це дуже велика проблема!
GeekHades

Це є. Я щойно (знову) збільшив свій номер збірки, це змінює ім'я файлу apk, знову у мене ця проблема.
Девід

13

У Android Studio 3.1.1 виберіть Файл | Синхронізувати проект з файлами Gradle.

У Android Studio 3 виберіть Файл | Синхронізувати.

Потім запустіть проект ще раз.


У Studio v3.1.1, Файл -> Синхронізувати проект з файлами Gradle. і вам добре їхати
Наполеан

Потім у полі на верхній панелі інструментів (з іконами), далі від піктограми молотка ви повинні повернути "додаток" назад, у спадному меню
CodeToLife

11

Рік - 2018. Версія Android Studio - 3.2.0 альфа3, і ми все ще отримуємо цю проблему. Оскільки для мене ніхто з вищезгаданого не працював, ось мої 2 копійки:

Кожен раз, коли це відбувається, я просто генерую apk з командного рядка:

gradlew assembleDebug

ОНОВЛЕННЯ

Видалення папки .AndroidStudio[version]та втрата всіх уподобань та кеш- файлів ... Схоже, вирішує проблему


1
але це працює лише для однієї збірки? якщо внести подальші зміни та натиснути кнопку "відтворити", вона просто натисне старий apk і не відбудується для змін. Так дратували, думали, wtf
behelit

7

У моєму випадку я використовував спеціальний символ у шляху мого файлу додатків. Я закрив Android Studio і видалити ' символ з мого шляху додатки файлу. Все спрацювало нормально, коли я повторно працював над проектом.


Так, в ідеалі Android Studio має бути достатньо розумним, щоб не дозволяти користувачам використовувати спеціальний символ у своєму шляху до файлів. Або краще, я мав би сам дотримуватися належних програм програмування :)
Безсмертний кодекс

6

Я вирішив створити apk за допомогою параметра Build у верхньому вікні та Build APK. Не потрібно робити щось дивне.


6

Для користувачів, подібних Unix (Linux / MacOs X), замість видалення ~ / .gradle / caches /, у командному рядку виконайте:

$ cd path_to_you_project
$ touch build.gradle

Потім попросіть Android Studio створити APK, він скине кеш-клас gradle сам.


5

Моя проблема полягає в тому, що я додав номер версії до APK. Змінення номера версії та повторна синхронізація Gradle вирішили проблему для мене.

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

Ви назвали appendVersionNameVersionCode в самому градусі?
Dhrupal



2

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

Файл -> Установки -> Збірка, виконання, розгортання -> Миттєвий запуск -> Зніміть прапорець там


2

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


2

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

Я видалив конфігурації з Run-> Edit Configurations, тут:

введіть тут опис зображення

Android студія створить нову автоматично.


Тоді вам потрібно натиснути на проект File / Re-Import Gradle. Це відновить видалену конфігурацію запуску.
Хуан Ігнасіо Барісіч

1

Зіткнувся з тим же видом, що й градус 1.5

Мені довелося чистити файли збірки:

Збірка -> Очистити проект

І створити APK, щоб змусити повну компіляцію та синхронізацію файлів gradle:

Збірка -> Збірка APK

Я досі не знаю, чому і як це сталося.



1

у мене була така ж проблема. це було пов’язано з хибною назвою на шляху. На такому шляху був спеціальний символ: C: \ User \ My App \ Projekte-Tablet & Handy Я видалив символ "&", і він добре працював.


1

Моя проблема полягала в тому, що в назві файлу було включено хвилини - він шукав appname_debug_0.9.0.1_170214_2216.apk, коли згенерований файл був appname_debug_0.9.0.1_170214_2217.apk, тому код виводу вихідного файлу (нарізаний з іншого місця) чітко викликався з двох різних точок у збірці.

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

звідки цей блок?
Нерій Джок

Це було з якогось іншого потоку обміну стеками, коли я вперше створював проект (і мав дуже мало уявлення, що я роблю - там нічого не змінювалося). Оскільки ця частина Gradle була змінена кілька разів, зараз, швидше за все, застарілий код.
Ян Спенсер

1

Проблема для мене полягала в тому, що якимось чином він не міг знайти apk, тоді як apk існує.

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

Все, що мені потрібно було зробити, - це клацнути правою кнопкою миші відносний шлях apk-copy і просто

adb install -r <paste of relative path>

І apk був встановлений і добре йти. Ця проблема сталася на OSX для мене.


1

Вирішено в травні 2018 року з новою Android Studio 3.1. Видаліть .gradle, .idea та створюйте каталоги всередині вашої програми. Потім спробуйте запустити його ще раз, і ви не побачите помилки.


1

Синхронізуйте, очистіть, відновіть та вимкніть кеш і перезавантажте

Жоден з них не працював на мене.

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


0

Я змінюю файл build.gradle фіксовану інформацію та натискаю "Синхронізувати зараз", просто гаразд.


0

Видаліть каталог ~ / .gradle / caches /. Це нормально робити, поки відкриється Android Studio. (Зверніться до встановлення неправильної назви пакета) Натисніть значок "Синхронізувати проект з файлами Gradle" на Android Studio Запустіть проект, і віддалений шлях буде правильним.

Зверніться до відповіді @ Android Studio, неправильна назва пакета під час роботи .apk


0

Переконайтеся, що в шляху, згенерованому у ваших журналах, у вашому випадку:

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

папка "Виходи" дійсно має папку "apk".

Це була моя проблема, якщо її там немає, вам потрібно буде виконати завдання "assembleRelease" у gradle, дотримуючись наведеного нижче скріншота;

Кроки для запуску Gradle збиранняВідпустіть завдання Тоді буде створена папка.


0

Ніщо вище мені не допомогло, але я зрозумів це, перейшовши на інший аромат на панелі «Інструменти збирання», а потім перейшов на потрібний.


0

змінити файл: build.gradle (каталог додатків). насправді: ви не повинні змінювати цей файл, тільки цим шляхом отримувати поради щодо синхронізації, а потім синхронізувати проект.

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