Студія Android Studio займає занадто багато часу для створення


225

Мій проект Android Studio використовувався для швидшого побудови, але зараз його потрібно багато часу. Будь-які ідеї, що може спричинити затримки? Я спробував https://stackoverflow.com/a/27171878/391401, але ефекту немає. У мене немає жодного запущеного антивірусу, який міг би перервати збірки. Моя програма також не настільки велика за розміром (близько 5 Мб ), і вона збиралася протягом декількох секунд, але не впевнена, що змінилося.

10:03:51 Gradle build finished in 4 min 0 sec  
10:04:03 Session 'app': running  
10:10:11 Gradle build finished in 3 min 29 sec  
10:10:12 Session 'app': running  
10:20:24 Gradle build finished in 3 min 42 sec  
10:28:18 Gradle build finished in 3 min 40 sec  
10:28:19 Session 'app': running  
10:31:14 Gradle build finished in 2 min 56 sec   
10:31:14 Session 'app': running  
10:38:37 Gradle build finished in 3 min 30 sec  
10:42:17 Gradle build finished in 3 min 40 sec  
10:45:18 Gradle build finished in 3 min 1 sec  
10:48:49 Gradle build finished in 3 min 30 sec  
10:53:05 Gradle build finished in 3 min 22 sec  
10:57:10 Gradle build finished in 3 min 19 sec  
10:57:11 Session 'app': running  

1
Що ви використовуєте, свій андроїд телефон або будь-який емулятор для запуску програми?
Ram Mansawala

Працює на пристрої
Harish

3
не чому Google перейшов з затемнення на андроїд-студію .... Студія Android відстій
капіт

38
Коли Android-студія була новою, багато хто в StackOverflow відкинув скарги на це, оскільки це "лише бета-версія". Однак зараз пройшло кілька років, оскільки він був "лише бета-версією", і він все ще млявий, і це на 8 ядрах, 16 ГБ оперативної пам’яті та на диску SSD. Старий Eclipse, встановлений на цій машині, так само швидко, як і моргання.
Ендрю S

Відповіді:


453

В Android Studio перейдіть до Файл -> Налаштування -> Збірка, виконання, розгортання -> Інструменти побудови -> Gradle

(якщо на Mac) Android Studio -> налаштування ... -> Збірка, виконання, розгортання -> Інструменти побудови -> Gradle

Установіть прапорець у режимі офлайн у розділі "Налаштування Global Gradle"

Це зменшить 90% час побудови граді.

перевірте це, щоб скоротити час збирання

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


11
Працювали чудово. З 12 хвилин до 5 секунд
Рамеш

18
чи не зупинить ця конфігурація отримання нових бібліотек, коли ми додамо їх до build.gradle?
Dany Y

48
коли ви додасте нову бібліотеку, вам доведеться зробити її в Інтернеті лише один раз, про що буде повідомлено gradle build, щоб зробити проект запущеним @DanyY
Biswajit Karmakar

15
Чи означає це, що весь час проблемою була швидкість Інтернету замість швидкості процесора?

1
Вуха! Пішов з понад 15 хвилин на 1 хвилину: O
Кардинал -

150

Якщо ви користуєтеся послугами Google Play, переконайтеся, що ви не використовуєте це у своєму сценарії побудови Gradle:

compile 'com.google.android.gms:play-services:8.3.0'

Використовуйте лише ті API Google, якими реально користується ваш додаток. Якщо ви використовуєте лише Карти Google, ви використовуєте це:

com.google.android.gms:play-services-maps:8.3.0

Коли я це зробив, час моєї компіляції склав від 2 хвилин до приблизно 25 секунд. Список списку apis Google, до якого можна вибірково скласти, див:

https://developers.google.com/android/guides/setup


12
Ви заслуговуєте 100+ грошей. Будь-яке інше джерело пропонує додавати org.gradle.parallel=trueта пов'язані з командним рядком ... але жодне не забезпечує простого та зрозумілого розуміння того, що насправді відбувається. Використовуючи вашу пораду, час моєї збірки пішов від 1 хв 5 сек до 3,427 секунди. Дивовижно !!
Саурон

Велике спасибі, це була і моя головна проблема. Зараз все працює чудово.
alnaji

1
Чудово працює. Використовуйте це посилання, щоб знайти назву бібліотеки служб ігор: developers.google.com/android/guides/…
ПК.

Ти заслужив галочку ... Ти вирішив мою проблему. Проблема в послугах Google Play ... Спасибі :)
Karue Benson Karue

Це не тільки допомогло у вирішенні проблем з довгою збіркою, але тепер я також можу розгортатись безпосередньо на пристрої Android, не використовуючи Proguard при налагодженні (раніше я отримував помилку щодо обмеження методу 65K). Дякую!
magritte

52

Знайшов простий і найкращий спосіб побудувати граду

перейдіть у свою програму >>, відкрийте свою gradle.properties та змініть кілька рядків з неї [видалити # ]

інакше ви можете скопіювати вставити мій фрагмент нижче

    # Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx2048m -XX:MaxPermSize=512m
 org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 org.gradle.parallel=true

він працював для мене раніше, це займає майже 2-3 хвилини, зараз це займає всього 5-6 секунд

у вищезгаданому сценарії у моєї Mac машини є 8 ГБ оперативної пам’яті, тому я призначив 4 ГБ для gradle


Це скоротило час моєї збірки з 30+ хвилин до 24 хвилин ... Чи є спосіб зменшити подальше ...?
програмування піратів

34

Знайшов причину !! Якщо в Android Studio є налаштування проксі-сервера і він не може дістатися до сервера, тоді потрібно тривати тривалий час, можливо, його намагаються дістатись до проксі-сервера і чекати очікування часу. Коли я видалив налаштування проксі-сервера, він справно працює.

Видалення проксі: File > Settings > Appearance & Behavior > System settings > HTTP Proxy


3
Як видалити проксі-сервер?
Joolah

2
У файлі Windows> Налаштування> Зовнішній вигляд та поведінка> Налаштування системи> HTTP Proxy
Harish

2
Моя проблема була також у проксі, але в тому, що мені довелося додавати також проксі HTTPS у властивості gradle. HTTP-проксі недостатньо: systemProp.http.proxyHost = xxx.xxx.xxx.xxx systemProp.http.proxyPort = 8080 systemProp.https.proxyHost = xxx.xxx.xxx.xxx systemProp.https.proxyPort = 8080
user3098756

26
ЯК - це повний жарт і бс. Мені просто набридла ця дурниця.
TheMartian

9
Я згоден!!! Я страждаю від немілості, щоб перенести великий проект від Eclipse, і тепер, коли помилки очищені, будівництво з AS ніколи не закінчується !!! Я ненавиджу AS @The_Martian
Josh

20

Виконуючи ці кроки, це зробить це в 10 разів швидше і скоротить час збірки на 90%

Спершу створіть файл з назвою gradle.properties у наступному каталозі:

/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)

Додайте цей файл у файл:

org.gradle.daemon=true

org.gradle.parallel=true

4
Ви можете встановити його безпосередньо з gradle.properties, розміщеного під студійним проектом.
Biswajit Karmakar

3
Так, також увімкніть цей параметр org.gradle.jvmargs = -Xmx2048m -XX: MaxPermSize = 512m -XX: + HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8
user779370

2
Встановити MaxPermSize = 1024 м
Biswajit Karmakar

Чому ці властивості не визначені ?? Чи є якісь недоліки?
оли

Цей параметр слід використовувати лише для розв'язаних проектів. Детальніше відвідайте gradle.org/docs/current/userguide/…
javad

17

Увімкнення функцій Java 8 спричинило смертельну повільну збірку

градле

 jackOptions {
        enabled true
  }

  compileOptions {
    targetCompatibility 1.8
    sourceCompatibility 1.8
}

Після видалення вищевказаних рядків він будується за лічені секунди.

Існує проблема Компіляція з Джеком займає дуже багато часу

Відповідь керівника проекту

Ми знаємо, що час складання - проблема з Джеком прямо зараз. Ми вдосконалюємо плагін 2.4 Gradle, що має бути суттєвим покращенням для поступових збірок.

На сьогодні остання версія Gradle, яку я можу знайти, - це 2.3.0-beta4


4
Так, я згоден. Щоб увімкнути java 8 в андроїд-студії, вам потрібно використовувати Джека, і, роблячи це, мої час збирання летять на Місяць від 1-2 хв. До 16 хв. Як завжди чудова робота Google
Кароль Żygłowicz


7

@AndroidDev рішення працювало на мене. Я включив цілу грудку в градле.

compile 'com.google.android.gms:play-services:8.4.0'

Зміна для вирішення проблеми. Від 4 хв до 1 хв.

compile 'com.google.android.gms:play-services-ads:8.4.0'
compile 'com.google.android.gms:play-services-analytics:8.4.0'

Thnx


4

Перевірте підключення до Інтернету . Якщо швидкість Інтернету дуже повільна, збільшити gradle також буде потрібно багато часу. Я перевіряю, змінивши підключення до Інтернету Wi-Fi на інше гарне швидкісне з'єднання. Зараз час побудови - це нормально. Спробуйте це, перш ніж перейти до інших рішень. хтось прийме неправильне рішення перевстановити або змінити налаштування. Сподіваюся, це допоможе. Дякую та з повагою


Обов’язково дозвольте Android Studio на брандмауері. Чекав майже 15 хвилин на Gradle на свіжому встановленні, коли раптом спливаюче вікно Firewall просить мене дозволити це. Невже можна було скоріше
Mohd.Zafranudin

2

1) Мій час збірки сильно збільшився після того, як я додав нові файли залежностей до мого файлу gradle, що виявилося, що мені потрібно використовувати мультидекс після цього. І коли я правильно налаштував мультидекс, то час моєї збірки піднявся на 2-3 хвилини. Тож якщо ви хочете швидшого часу збірки, уникайте використання мультидекса і, наскільки це можливо, зменшіть кількість залежностей бібліотеки.

2) Також ви можете спробувати включити "офлайн роботу" в андроїд-студії, як тут пропонується, що має сенс. Це не буде переробляти бібліотеки щоразу, коли ви створюєте збірку. Можливо, повільне підключення або використання проксі / vpn при відключенні роботи в режимі офлайн може призвести до повільного часу збірки.

3) служби Google - як уже згадувалося тут, не використовуйте весь пакет, використовуйте лише необхідні його частини.


1

У бета-версії Android студії 2.0 вони розгорнули функцію під назвою Instant Run . Це зменшує час збирання великим фактором. Основна концепція полягає в тому, що Android Studio лише підштовхує невеликі зміни, внесені до вже запущеного додатку.

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

Тут ви можете завантажити попередній перегляд Android Studio 2.0.

PS: Є кілька проблем з цією функцією. Вони перерахували це в документах. Перевірте це перед установкою.


1
  1. Перейдіть у меню Файл-> Налаштування -> Gradle -> Установіть його в офлайн-режимі та перевірте

1

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

Крок 1. У додатку Модуль додайте залежність у BuildScript

buildscript {
 dependencies {
         classpath 'com.android.tools.build:gradle:2.0.0-alpha9'
}
}

Крок 2: Додайте dexOption і надайте наступний heapSize

  dexOptions {
    incremental = true;
    preDexLibraries = false
    javaMaxHeapSize "4g"
}

Крок 3: Додайте продукти смаку

    productFlavors {
    dev {
        minSdkVersion 23
        applicationId = "com.Reading.home"
    }
    prod {
        minSdkVersion 15
        applicationId = "com.Reading.home" // you don't need it, but can be useful

    }
}

Це має скоротити час збирання.


0

Якщо ви використовуєте Windows 8 ...

Рішення DroidArc та AndroidDev, де корисні, але не нав'язують. Моя проблема була пов'язана з моєю ОС Windows 8 та її 100% використанням диска.

Особливо сервіс пошуку Windows був найбільш затребуваним. Вимкніть його за допомогою: cmd (Адміністратор)> net.exe стоп "Пошук Windows"

Я дотримувався вказівок за цим посиланням, і це вирішило проблему для реальних 4 підказок для виправлення 100% використання диска та покращення продуктивності Windows

Сподіваюсь, це допомагає.


0

У мене був такий самий випуск у котліні. Оновлення застарілого котлінського часу виконання вирішило це для мене


0

У мене виникли такі проблеми, особливо при налагодженні через телефон; часом це займало 27 хвилин. Я робив наступні речі і беру до відома пояснення під кожним - одне може працювати для вас:

  1. Змінено мій файл gradle.properties (під сценаріями Gradle, якщо ви переглядаєте файл проекту під опцією Android АБО в папці проекту). Я додав це, тому що мій комп'ютер запасує трохи пам'яті - ви можете призначити різні значення в кінці залежно від специфікацій комп'ютера та мінімальних вимог для андроїд-студії (Xmx8000m -XX: MaxPermSize = 5000м):

org.gradle.daemon = вірно

org.gradle.configureondemand = вірно

org.gradle.parallel = вірно

android.enableBuildCache = вірно

org.gradle.caching = вірно

org.gradle.jvmargs = -Xmx8000m -XX: MaxPermSize = 5000м -XX: + HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8

  1. Це не повністю вирішило моє питання в моєму випадку. Тому я також робив так, як пропонували інші раніше, щоб зробити свій процес нарощування в режимі офлайн:

Файл -> Установки / Налаштування -> Збірка, виконання, розгортання -> Gradle

Налаштування глобальної оцінки Gradle (внизу)

Позначте прапорець під назвою: Офлайн робота.

  1. Це значно скоротило час, але воно було нестабільним; часом займало більше часу. Тому я вніс деякі зміни в режимі миттєвого запуску:

Файл -> Установки / Налаштування -> Збірка, виконання, розгортання -> Миттєвий запуск

Поставлено прапорець: Увімкнути миттєвий запуск для гарячого коду підкачки ...

Перевірено: перезапустити активність щодо зміни коду ...

  1. Цей крок був також помилковим, і тому я намагався з’ясувати, чи проблема може полягати в процесах / пам'яті, які прямували або на моєму телефоні та на комп'ютері. Тут я звільнив трохи місця в пам’яті в своєму телефоні та пам’яті (що було 98% використання - до 70%), а також у диспетчері завдань (Windows), збільшивши пріоритет і для Android Studio, і для Java.exe до High. Робіть цей крок обережно; залежить від пам'яті комп'ютера.

  2. Зрештою це час моєї збірки під час налагодження на моєму телефоні часом знижувався до 1 ~ 2 хвилин, але часом спав. Я вирішив зробити хакер, який мене здивував , знявши його на секунду найкраще, але в тому ж проекті, який дав мені 22 - 27 хвилин, було 12 секунд !:

Підключіть телефон для налагодження, потім натисніть кнопку RUN

Після запуску вийміть підключення до телефону - збірка має продовжуватися швидше і в кінці підніме помилку, що вказує на це: "Додаток" сесії: Помилка встановлення APK

Підключіть телефон назад і знову натисніть кнопку RUN ...

АЛЬТЕРНАТИВНО

Якщо сценарій / функція / метод, на який я налагоджую, суто JAVA, а не JAVA-android, наприклад тестування API з JSONArrays / JSONObjects, я тестую свої функції / методи java на Netbeans, які можуть скласти один файл і швидше показувати вихід, а потім робити необхідні зміни в моїх файлах Android Studio. Це також економить мені багато часу.

EDIT

Я спробував створити новий проект Android в локальній пам’яті і скопіював усі мої файли з попереднього проекту в новий - java, res, manifest, app додаток gradle та gradle (з останньою залежністю від classle classle). І тепер я можу створити на своєму телефоні менше ніж за 15 секунд.


0

У своєму build.gradle, якщо ви minifyEnabled для налагодження, видаліть його. У мене це було в моєму проекті, і на його складання пішло ~ 2-3 хвилини. Переглянувши прогрес у складанні, я виявив це як винуватця, тому, видаливши коментований рядок нижче, мою проблему було виправлено.

buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }//debug{
         //   minifyEnabled true
         //   proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}


0

У мене була така ж проблема, навіть збірка градуала працювала 8 годин, і я хвилювався. Але згодом я змінив версію компіляції sdk та мінімальну версію sdk у build.gradle файлі як це.

Старіші:

android {
compileSdkVersion 25
buildToolsVersion "29.0.2"

defaultConfig {
    applicationId "com.uwebtechnology.salahadmin"
    minSdkVersion 9
    targetSdkVersion 25
}

Нове (оновлено):

android 
{
  compileSdkVersion 28
   buildToolsVersion "25.0.2"

 defaultConfig {
    applicationId "com.uwebtechnology.salahadmin"
    minSdkVersion 15
    targetSdkVersion 28
 }

-2

У мене на комп’ютері була подібна проблема. Windows Defender блокував частину будівлі Gradle. Я відключив її, працював чудово після цього.


-43

Спробуйте перезавантажити комп’ютер і запустити Android Studio знову. Для мене працювали, намагаючись створити проект Кордова / Фонегап із цільовою базою коду для Android.

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