Ошибка Gradle: доступ на запись разрешен из потока отправки событий только в Android Studio


120

После обновления Android Studio до версии 2.2 (в Windows 10) и каким-то образом на следующее утро я получил такую ​​ошибку, когда gradle построил на любом проекте:

Доступ для записи разрешен только из потока отправки событий

Несмотря на то, что команда gradlew -build сработала и успешно завершилась. Я попробовал типичный набор для восстановления WTF для Android-разработчиков: чистая сборка, аннулирование кешей, удаление папок сборки, удаление папки .gradle, пробовал разные настройки Gradle, даже переустановка Android Studio, и ничего не помогло.

Я создал этот вопрос только для того, чтобы поделиться своим опытом с сообществом, потому что я потратил на него два часа.


Размещайте SDK только в Andoid Studio.
Ja Mal Ch

Ответы:


413

Таким образом, проблема заключалась в том, что Android Studio конфликтовала с моей установленной версией JDK, поэтому она была решена, когда я проверил местоположение JDK (Файл → Структура проекта → Расположение SDK), установил флажок `` Использовать встроенный JDK '' и установил для местоположения JDK значение `` путь к Android Studio '\ Android Studio \ jre


1
Хорошо сработало для меня! Большое спасибо!
waseefakhtar

1
Отличный ответ! Сработало мгновенно. Когда я щелкнул, открыв структуру проекта после прочтения этого ответа, в самом диалоговом окне «Структура проекта» в нижней части диалогового окна появилось сообщение «Пожалуйста, выберите действительный каталог JDK», сопровождаемое кнопкой навигации, которая при нажатии переместилась в JDK. текстовое поле местоположения. В настоящее время я использую Android Studio 3.1.3 на своем Ubuntu. Спасибо!
Сэм

11

Проблема возникла, когда студия Android конфликтует с установленной версией jdk, перейдите в (Файл -> Структура проекта -> Местоположение SDK), установите флажок «Использовать встроенный JDK» и установите для местоположения jdk значение «путь к студии Android» \ Android Studio \ jre :) Просто


1

это не сработало для меня, я запустил команду 'gradle clean build', я понял, что есть конфликт в строке в градиенте, удалил его и синхронизировал проект ( как на этом рисунке )

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


1
это то , что работает для меня на этот вопрос, это может помочь другим , кто был мой же Prob на тот же вопрос
Ryuzaki

0

Моя проблема заключалась в том, что я удалил SDK, который использовал при очистке места на жестком диске.

Чтобы исправить это, сначала проверьте, какие SDK вы установили, или установите один в Инструменты> Диспетчер SDK.

Затем вы можете изменить compileSdkVersion и targetSdkVersion в app build.gradle на установленную версию sdk.

В противном случае вы можете просто переустановить тот SDK, который вы когда-либо использовали.


-1

В Android Studio 3.2.1 перейдите в Файл -> Структура проекта -> Расположение SDK и установите флажок «Использовать встроенный JDK (рекомендуется)». введите описание изображения здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.