У меня были такие проблемы, особенно при активной отладке через телефон; временами это занимало 27 минут. Я сделал следующие вещи и приму к сведению объяснения под каждым - один может работать для вас:
- Изменен мой файл gradle.properties (в скриптах Gradle, если у вас есть вид файла проекта под опцией Android ИЛИ в папке вашего проекта). Я добавил это, потому что у моего компьютера есть немного свободной памяти - вы можете назначить разные значения в конце, в зависимости от технических характеристик вашего компьютера и минимальных требований Android Studio (Xmx8000m -XX: MaxPermSize = 5000m):
org.gradle.daemon = верно
org.gradle.configureondemand = верно
org.gradle.parallel = верно
android.enableBuildCache = TRUE
org.gradle.caching = верно
org.gradle.jvmargs = -Xmx8000m -XX: MaxPermSize = 5000m -XX: + HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8
- Это не полностью решило мою проблему в моем случае. Поэтому я также сделал, как и предлагали другие, чтобы перевести процесс сборки в автономный режим:
Файл -> Настройки / Предпочтения -> Сборка, выполнение, развертывание -> Gradle
Глобальные настройки Gradle (внизу)
Установите флажок с именем: Автономная работа.
- Это существенно сократило время, но было ошибочным; время от времени занимало больше времени. Поэтому я внес некоторые изменения в Instant Run:
Файл -> Настройки / Настройки -> Сборка, выполнение, развертывание -> Мгновенный запуск
Проверено: Включить Instant Run для горячего обмена кода ...
Проверено: возобновить активность при изменении кода ...
Вышеуказанный шаг также был ошибочным, и поэтому я попытался выяснить, может ли проблема быть в процессах / памяти, которые запускались непосредственно на моем телефоне и компьютере. Здесь я освободил немного памяти в своем телефоне и хранилище (которое было использовано на 98% - до 70%), а также в диспетчере задач (Windows), повысил приоритет как Android Studio, так и Java.exe до высокого. Сделайте этот шаг осторожно; зависит от памяти вашего компьютера.
После всего этого время сборки во время активной отладки на моем телефоне иногда уменьшалось до 1-2 минут, но время от времени увеличивалось. Я решил сделать хак, который удивил меня , сократив его до лучших секунд на том же проекте, который дал мне 22 - 27 минут - 12 секунд !:
Подключите телефон для отладки, затем нажмите RUN
После его запуска отключите телефон - сборка должна продолжаться быстрее и в конце появится сообщение об ошибке, указывающее на это: Сессия «app»: Ошибка при установке APK
Снова подключите телефон и снова нажмите «RUN» ...
АЛЬТЕРНАТИВЫ
Если сценарий / функция / метод, который я отлаживаю, является чисто JAVA, а не JAVA-android, например, для тестирования API с помощью JSONArrays / JSONObjects, я проверяю свои функции / методы Java на NetBeans, которые могут скомпилировать один файл и показать результат быстрее, а затем сделать необходимые изменения в моих файлах Android Studio. Это также экономит мне много времени.
РЕДАКТИРОВАТЬ
Я попытался создать новый проект Android в локальном хранилище и скопировал все мои файлы из предыдущего проекта в новый - java, res, manifest, приложение gradle и проект gradle (с последней зависимостью grapath от classpath). И теперь я могу собрать свой телефон менее чем за 15 секунд.