Błąd Gradle: dostęp do zapisu jest dozwolony z wątku wysyłania zdarzeń tylko w Android Studio


120

Po aktualizacji Android Studio do wersji 2.2 (na Windows 10) i jakoś następnego ranka otrzymałem taki błąd, gdy gradle budował na dowolnym projekcie:

Dostęp do zapisu jest możliwy tylko z wątku wysyłania zdarzeń

Mimo to polecenie budowy gradlew działało i zakończyło się pomyślnie. Wypróbowałem typowe dla Androida deweloperów zestawu naprawczego WTF: czysta kompilacja, unieważnienie pamięci podręcznych, usunięcie folderów kompilacji, usunięcie folderu .gradle, wypróbowanie różnych ustawień gradle, nawet ponowna instalacja Android Studio i nic nie pomogło.

Stworzyłem to pytanie tylko po to, aby podzielić się swoim doświadczeniem ze społecznością, ponieważ zmarnowałem na nie dwie godziny.


Umieść SDK tylko w Andoid Studio.
Ja Mal Ch

Odpowiedzi:


413

Tak więc problem zakończył się tym, że Android Studio był w konflikcie z moją zainstalowaną wersją JDK, więc został rozwiązany, gdy sprawdziłem lokalizację JDK (Plik → Struktura projektu → Lokalizacja SDK), zaznaczyłem pole wyboru „Użyj osadzonego JDK” i ustawiłem lokalizację JDK na „ścieżkę do Android Studio '\ Android Studio \ jre


1
U mnie dobrze działa! Wielkie dzięki!
waseefakhtar

1
Doskonała odpowiedź! Działał natychmiast. Kiedy kliknąłem, otworzyłem strukturę projektu po przeczytaniu tej odpowiedzi, samo okno dialogowe Struktura projektu pokazało komunikat na dole okna dialogowego "Proszę wybrać prawidłowy katalog JDK", któremu towarzyszy przycisk nawigacyjny, który po kliknięciu przenosi się do JDK pole tekstowe lokalizacji również. Obecnie używam Android Studio 3.1.3 na moim Ubuntu. Dzięki!
sam

11

Wystąpił problem, gdy wystąpił konflikt Android Studio z zainstalowaną wersją jdk, przejdź do (Plik -> Struktura projektu -> Lokalizacja SDK), zaznacz pole wyboru „Użyj osadzonego JDK” i ustaw lokalizację jdk na „ścieżka do android studio” \ Android Studio \ jre :) Prosty


1

to nie zadziałało dla mnie, uruchomiłem polecenie `` gradle clean build '', zorientowałem się, że jest konflikt w linii w gradle, usunąłem go i zsynchronizowałem projekt ( jak na tym zdjęciu )

wprowadź opis obrazu tutaj


1
to właśnie zadziałało w przypadku tego pytania, może pomóc innym, którzy mieli ten sam problem z tym samym pytaniem
Ryuzaki

0

Mój problem polegał na tym, że usunąłem SDK, którego używałem podczas czyszczenia miejsca na dysku twardym.

Aby to naprawić, najpierw sprawdź, jakie zestawy SDK zostały zainstalowane, lub zainstaluj jeden w menu Narzędzia> Menedżer SDK.

Następnie możesz zmienić compileSdkVersion i targetSdkVersion w aplikacji build.gradle na zainstalowaną wersję sdk.

W przeciwnym razie możesz po prostu ponownie zainstalować to, co kiedykolwiek używasz sdk.


-1

W Android Studio 3.2.1 przejdź do Plik -> Struktura projektu -> Lokalizacja SDK i zaznacz pole wyboru „Użyj osadzonego JDK (zalecane)”. wprowadź opis obrazu tutaj

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.