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.

Beloo
źródło
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

Beloo
źródło
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

Wyjątek zerowego wskaźnika
źródło
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

Ryuzaki
źródło
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.

Matthew Mullin
źródło
-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

Andy Luis
źródło