Як виправити застрявання Android Studio під час виконання завдань Gradle?


78

Android Studio (бета-версія) 0.8.6 застрягає, коли я намагаюся побудувати / запустити проект, а також очистити його. Він залишається чуйним, але повідомлення Gradle: Виконання завдань не зникає (це більше 20 хвилин, коли я відмовляюся), і програма ніколи не запускається.

Це те, що я намагався:

  • Недійсні кеші / перезапуск

  • Примусово вийти і перезапустити

  • Видаліть його з Програми (на Mac) і повторно завантажте з офіційного веб-сайту.

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


2
Спробуйте це, киньте Studio, відкрийте термінал, запустіть./gradlew tasks --debug
bhargavg 02

@bhargavg Я спробував це, там сказано-bash: ./gradlew: Permission denied
Олексій

@bhargavg перейти до /path/to/sdk/toolsі запустити sudo chmod 777 gradlewабо, sudo chmod 777 *а потім знову запустити команду
Хоссейні

Відповіді:


61

Виправлено, перейшовши до Android Studio-> Preferences-> Gradle-> та позначивши Offline work. Досі не уявляю, що було неправильно, але принаймні зараз це компілюється.

Редагувати: у нових версіях Android Studio шлях File-> Other Settings- -> Default Settings-> Build-Excecution-Deployment->Gradle


Все ще повільно, майже одна хвилина.
Владо Панджич

12
Цю відповідь слід оновити. Файл-> Налаштування-> Побудова-Виконання-Розгортання-> Gradle - правильне місце.
The_Martian

неможливо знайти де-небудь опцію gradle - Файл-> Налаштування-> Збірка-Розгортання-Розгортання-> Gradle та Android Studio -> Налаштування -> Gradle
Нарендра Сінгх

8
Файл-> Налаштування-> Побудова-Виконання-Розгортання-> BuildTools-> Gradle
RTF

Моє питання було іншим, див. Мою відповідь.
нуреттин

50

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

Я нещодавно зіткнувся з цією проблемою після свіжої інсталяції Ubuntu 14.04 . Погугливши деякий час, не пощастивши, я перевірив термінал, виявилося, що libz.so.1його немає. Тож я встановив його, працював як шарм.

Встановлення інструкції тут: libz.so.1: не вдається відкрити спільний файл об'єкта


3
Станом на січень 2016 року це необхідне рішення. Для ледачих, які не бажають відвідувати посилання: sudo apt-get install zlib1g: i386
grasskode

Після багатьох експериментів це вдалося. Це робоча відповідь ... спасибі
Nidhin David

Як щодо Mac OS X? У мене є zlib, і там та сама проблема.
Макалеле

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

1
Це працювало на ubuntu 16.06 (установка lib32z1). Консоль Gradle в андроїд-студії насправді надавала інформацію про те, що відсутній libz, і це гарне місце для перевірки на випадок проблем із gradle.
HYS

5

Увімкніть роботу в режимі офлайн із налаштування

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


Це спрацювало для мене, коли я вперше запускав свій проект на оновленому Android Studio 2.2 Preview 1.
WWJD,

2

Вам потрібно додати до файлу режим виконання: AndroidStudioProjects / YourProjectName / gradlew, щоб Android Studio могла його виконати. якщо ви працюєте на машині Linux, використовуйте цю команду: chmod + x gradlew для запуску цієї команди, можливо, вам знадобляться права адміністратора. в Ubuntu для цього можна використовувати sudo chmod + x gradlew


2

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

  1. Запустіть команду gradle з командного рядка. Це все ще не вдається?

    $ ./gradlew myTask

  2. Якщо так, повторно запустіть із прапором налагодження. Будь-яка корисна інформація?

    $ ./gradlew myTask --debug

  3. Якщо це просто зависання, спробуйте отримати трасування стека. Шукайте файл дампаmyTask

    $ jps -mv | grep Gradle  <--- be sure to use capital "G"
    2290 GradleDaemon 3.3 -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Xmx2304M -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant
    $ jstack -l 2290 >> dump.txt <--- your process ID will be different
    
  4. Якщо це тільки висить при запуску Android Studio, генерувати потік дамп для Android Studio читайте тут .


1

У моєму випадку схоже на те, що у gradle бракує 32-бітної бібліотеки на 64-розрядному Ubuntu 16.04. Це sudo apt-get install libstdc++6:i386вирішило проблему.


1

Це сталося зі мною після додавання google play api до залежностей {}. ./gradlew app:assembleDebugпоказав помилку, сказавши щось на зразок Dex ID limit reached use multi-dex.того, що я налаштовував це, як описано тут , я вирішив видалити залежність, яку нещодавно додав, і проблема зникла.

Google також пропонує використовувати proguard як метод оптимізації кількості ідентифікаторів Dex в тому самому документі.


1

Для користувачів GNU / Linux:

Я скопіював SDK з іншого сховища у свій домашній каталог. Тоді я отримував запас gradle build running. Проблема полягала в дозволах файлів SDK. Перегляньте журнал консолі gradle, і якщо ви побачите деякі матеріали, яким заборонено дозвіл, виконайте наступне - надайте всі файли, що виконують дозвіл за цією командою:

chmod -R +x /path/to/android-sdk


1

Після великої боротьби та слідування всім рішенням, розміщеним вище (і в подібних публікаціях), я нарешті виявив, що проблемою на моєму ПК була антивірусна програма. Я вимкнув його, і gradle оновився та швидко побудував, як це було до початку проблеми.

Схоже, мій антивірус нещодавно почав блокувати gradle від оновлення / завантаження необхідної інформації з Інтернету, і саме це спричиняє затримки та врешті-решт час очікування при завантаженні та оновленні проекту. Вимикаючи антивірус, він щоразу виправляє проблему.


Те ж саме. Боровся з рішеннями з цієї посади, і нічого не працювало. На щастя, натрапив на цю відповідь. На моєму ноутбуці компанії встановлено McAfee, і мені довелося відключити деякі його процеси, щоб Gradle закінчив процес збірки.
Борис Гітлін,

0

У мене встановлено centos 7 64 біт на віртуальній машині virtualbox 5.0.16 та gradle версії 2.10 з Android Studio 2.0

Файл журналу gradle знаходиться в $HOME/.gradle/daemon/2.10 журналі:daemon-<some number>.out.log

libz.so.1Перевіривши цей журнал, я виявив, що aapt не знайшов.

Незважаючи на цю команду "locate libz.so.1", вихід був

/usr/lib64/libz.so
/usr/lib64/libz.so.1
/usr/lib64/libz.so.1.2.7

aapt не зміг його знайти.

Для вирішення проблеми мені довелося виконати

yum install zlib.i686

Після цього Градле почав працювати як оберег. Удачі!


0

У мене було щось подібне.

Коли я запускав gradle з команди, як би він видавав цей виняток

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileDevDebugJavaWithJavac'.

після очікування на цій лінії приблизно 25 хвилин

:app:compileDevDebugJavaWithJavac

виявилось, це щось пов’язане з андроїд-анотаціями, якими я користувався. Я замінив

@UiThread 

Я використовував з

activity.runOnUiThread(new Runnable(...

І він почав компілювати просто чудово. Це дивно, бо я використовував анотацію @UiThread у багатьох інших місцях свого коду.


0

У моєму випадку я отримував цю помилку від Gradle Builder (Android Studio 2.2, Windows 10)

java.lang.RuntimeException: Час очікування очікуваного процесу aapt підпорядкований, спробуйте встановити значення змінної середовища SLAVE_AAPT_TIMEOUTна значення більше 5 секунд

Рішенням було просто додати змінну SLAVE_AAPT_TIMEOUT до мого середовища Windows і встановити для неї значення 30


0

Я мав ту саму проблему і вирішив встановити змінну SLAVE_AAPT_TIMEOUT у системних змінних зі значенням 30.


0

Я працюю під Windows, і у мене була та сама проблема.

Для мене виконуваний файл gradlew якимось чином видалили, не уявляючи як. Я на Канарських островах, і раніше у мене була проблема.

У вікні терміналу в Android Studio введіть, gradlewі він перезавантажить та встановить його, якщо його немає. (Моїм старим рішенням було повне перевстановлення Android Studio, тому це простіше)


0

У мене була та ж проблема, навіть із новими стандартними проектами (Ubuntu 16.04). Проблема виявилася в незалежних залежностях Gradle. Переглянути файл:
~ / .gradle / init.gradle
Він може містити додаткові залежності, які Gradle не може завантажити. Ви можете побачити, що не можна завантажити в консолі:
./gradlew --debug


0

Якщо ви використовуєте бібліотеку Realm і використовуєте RealmStudio або RealmBrowser, щоб відкрити файл .realm, переконайтеся, що ви виконали видалення файлу .realm / lock та папки .realm.management.


0

Я думаю java.exe, що причина цього питання. Просто вбийте цю програму вручну і спробуйте. Це справді спрацювало у мене за допомогою Android studio 3.0.1.


0

У моєму випадку це застрягло, mergeDebugResourcesтому що я випадково отримав подвійну одинарну лапку \\'в рядку. Android Studio не позначає це як помилку, але натомість застрягає в будівництві!

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