Obecnie jest używany przez inną instancję Gradle

119

Jestem nowy w systemie kompilacji Gradle. Chcę na nim wykonać kilka podstawowych funkcji. Uruchamiam / buduję to w linii poleceń. Odsyłam do instrukcji obsługi . I wykonując proste zadania.

Kiedy zacząłem wykonywać proste zadania, udało mi się zbudować. Ale po pewnym czasie to się pokazuje "It is currently in use by another Gradle instance"i staje się BUILD FAILED. Do uruchomienia zadania używam terminala. W tamtym czasie nic nie prowadziłem.

Gdybym zamknął terminal, który generuje błąd, problem zostałby rozwiązany. Ale wiem, że to nie jest na to rozwiązanie.

Dlaczego ten błąd pojawia się często?

Jak to rozwiązać?

Proszę odnieść się do dowolnego łącza, aby poszerzyć moją wiedzę na temat systemu Gradle Build w systemie Android.

Dhasneem
źródło
4
Czy przypadkiem używasz gradle w trybie demona ? Możesz to sprawdzić, uruchamiając polecenie gradle --stop. Można oczekiwać, że dane wyjściowe zostaną wyświetlone. Nie działają żadne demony Gradle lub demon Gradle został zatrzymany .
topr
@topr Nie korzystałem z trybu demona ..
Dhasneem,
3
Rozwiązanie: (To zadziałało) Krok 1. Uruchom menedżera zadań, znajdź / sprawdź, czy NIE MA uruchomionych DWÓCH instancji java.exe. Krok 2. Po prostu zabij jeden plik java.exe lub oba i ponownie uruchom Android Studio. Ciesz się
Lakhwinder Singh Dhillon

Odpowiedzi:

306

Usuń pliki blokady z pamięci podręcznej gradle, wykonując coś takiego:

find ~/.gradle -type f -name "*.lock" -delete
n1ghtm4n4g3r
źródło
12
Dzięki! Zadziałało po tym, jak dodatkowo pobiegłem find /path-to-project-dir/.gradle -type f -name "*.lock" | while read f; do rm $f; done
Tyler
4
Dzisiaj wróciłem do tego pytania i tym razem kill -9oprócz usunięcia plików blokujących musiałem przeprowadzić proces. Po wiadomości w tytule pytania natychmiast pojawił się identyfikator PID: Co poszło nie tak: Przekroczono limit czasu oczekiwania na zablokowanie pamięci podręcznej historii zadań (,,,). Obecnie jest używany przez inną instancję Gradle. PID właściciela: 4354 Nasz PID: 9500
Joshua Goldberg
@JoshuaGoldberg Czy sprawdziłeś, jak i kiedy proces # 4354 został uruchomiony, zanim go zabiłeś? (Jestem po prostu ciekawy.)
n1ghtm4n4g3r
2
Dzięki za udostępnienie tego polecenia, nigdy wcześniej nie miałem tego problemu i po usunięciu plików blokady dla gradle mogłem ponownie uruchomić serwer. Powinno to być oznaczone jako „Najlepsza odpowiedź”
Raul Rivero
1
@ shashank-chandak w powłoce bash (Terminal lub Cygwin)
n1ghtm4n4g3r
35

Czasami szybka droga przychodzi w mało eleganckim interesie, proszę bardzo:

Najpierw znajdź # wszystkich uruchomionych procesów gradle

ps -A | grep gradle

Potem zdobądź identyfikatory, zabij ich wszystkich jeden po drugim

sudo kill -9 <process ID>

Teraz jesteś dobry ;-)

PYK
źródło
29

Utknąłem z tym błędem i musiałem wydmuchać zawartość .gradle/caches/folderu mojego użytkownika i zawartość .gradle/folderu mojego projektu, aby znów zacząć działać.

Nie wiesz, co to spowodowało, prawdopodobnie nieudana kompilacja, która utrzymywała te pliki w stanie zablokowanym?

Ross Hambrick
źródło
Ten problem jest tutaj odnotowany - Issues.gradle.org/browse/GRADLE-2795 - Chociaż istnieje błąd gradle, myślę, że jest to najlepsze rozwiązanie.
Joshua Goldberg
3
Właściwie udało mi się po prostu usunąć ~ / .gradle / caches / * bez dotykania katalogu .gradle projektu.
Joshua Goldberg
Na szczęście dla ciebie @JoshuaGoldberg, ale w moim przypadku nie mogę nawet usunąć folderu chaches. co może być problemem?
offshore
Usunąłem .gradle / caches / ** i znowu działa. Dziwne jest to, że używam tylko pliku ./gradlew, który nie powinien używać lokalnej wersji gradle, prawda?
Ben Groot
1
@BenGroot AFAIK wszystkie demony gradle z tą samą wersją gradle współdzielą tę samą pamięć podręczną (jeśli nie jest to wyraźnie wymuszone inaczej), bez względu na to, skąd zostały uruchomione.
ubuntudroid
12

W przypadku komputera z systemem Windows:

Otwórz Menedżera zadań (Ctrl-Alt-Usuń i sprawdź proces)

-> Jeśli uruchomisz dwie instancje android studio, zamknij jedno (zakończ zadanie)

-> Następnie zamknij plik binarny platformy OpenJDK

-> Synchronizacja Gradle teraz na AndroidStudio i będzie teraz działać

Yog
źródło
To zadziałało dla mnie. Ale w moim przypadku miałem dwa otwarte wystąpienia JDK i jedno Android Studio.
Rowan Gontier
7

Może się tak dziać, ponieważ istnieje więcej niż jedna instancja Android Studio.

Justin
źródło
Zgoda, otwarcie multi-window android studio i jednoczesna synchronizacja również spowodowało ten problem
mochadwi
6

Po prostu zabij proces java.exe, napraw mój problem.

-- Edytować --

jeśli nie zostanie naprawiony, to:

  • zabić proces OpenJdkPlatform.

jeśli nie zostanie naprawiony, to:

  • usuń wszystkie pliki ".lock" z katalogu .gradle i podkatalogów (Windows: C: \ Users \ Username \ .gradle).

jeśli nie zostanie naprawiony, to:

  • zmień nazwę lub usuń katalog .gradle i spróbuj ponownie.
Ahmad Dehnavi
źródło
Po przeczytaniu twojej odpowiedzi usunąłem katalog .gradle i teraz po ponownej kompilacji aplikacja jest całkowicie zepsuta.
czerwony diabeł
Po przeczytaniu twojej odpowiedzi usunąłem katalog .gradle i teraz po ponownej kompilacji aplikacja jest całkowicie zepsuta. Rozmiary czcionek wzrosły, wzrosło wypełnienie, pojawiają się losowe błędy walidacji. Co mogę teraz zrobić?
czerwony diabeł
1
Czy na pewno po prostu usuń katalog .gradle? usunięcie .gradle nie może mieć żadnego efektu ubocznego w kodzie aplikacji. to tylko pamięć podręczna gradle i jeśli ponownie skompilujesz aplikację. gradle pobierze niezbędne pliki. spróbuj czystej kompilacji.
Ahmad Dehnavi
3

Po komunikacie o błędzie Gradle zwykle następują odpowiednie identyfikatory procesów, więc tak by było

Gradle sync failed: Timeout waiting to lock daemon addresses registry [...].
It is currently in use by another Gradle instance.

Owner PID: 1234
Our PID: 5678
Owner Operation: ...

Aby odblokować, po prostu zabij proces właściciela:

sudo kill -9 1234
saschoar
źródło
2

W przypadku systemu operacyjnego Windows:

Pomyślałem, że ma to coś wspólnego z plikiem blokady, więc po prostu przeszedłem do .gradle \ buildOutputCleanup w folderze projektu, usunąłem plik cache.properties.lock i odbudowałem projekt. Działało doskonale.

kayleb
źródło
2

Mając ten sam problem na komputerze Mac, żadne z powyższych nie działało dla mnie. Jednak zadziałało otwarcie Monitora aktywności i zamknięcie uruchomionego procesu Java. Zauważyłem również, że został wygenerowany plik .hprof, który usunąłem. Potem uruchomiłem projekt i udało się.

George Ampartzidis
źródło
2

naciśnij, CTRL + SHIFT + ESCaby otworzyć menedżera zadań, teraz znajdź OpenJDKi zabij go, gdzie wskazuje błąd

D:\.gradle\daemon\4.10.1\registry.bin.lock

usuń plik i zsynchronizuj go ponownie i gotowe.

steve moretz
źródło
2

Mogę się spóźnić, ale wyglądam na szybkie i skuteczne rozwiązanie.

Wykonaj następujące kroki.

  1. Wykonać ps -ef | grep gradle
  2. Otwórz terminal i przejdź do ścieżki ~ / .gradle / caches
  3. Wykonać find ~/.gradle -type f -name "*.lock" | while read f; do rm $f; done

Zrobione.

Hiren Patel
źródło
2

Dla maszyn MAC

Otwórz "Monitor aktywności" i wybierz opcję "pamięć" i wymuś wyciszenie studia Android i innych działających procesów java, to rozwiąże ten problem.

Vinod Pattanshetti
źródło
1
działa dla mnie podczas uruchamiania z intelliJ na Macu
Karim Sonbol
1

Miałem ten sam problem na Macu:

uważaj, aby Twój projekt NIE był na zewnętrznym dysku twardym. Projekt musi znajdować się na dysku twardym z systemem operacyjnym.

(Tworzenie aplikacji Ionic)

Sean Stayns
źródło
Wygląda na to, że w moim przypadku problem jest również taki. Pewnego dnia przeniosłem projekt na dysk zewnętrzny.
DmitryKanunnikoff
1

Miałem ten sam problem w moim projekcie, ale rozwiązałem go, unieważniając projekt, więc wykonaj następujące kroki w Android Studio Plik -> Unieważnij pamięć podręczną / Uruchom ponownie ...

Vikas Kumar Singh
źródło
0

Nie musiałem usuwać żadnych plików, aby naprawić ten błąd.

Problem polegał na tym, że wystąpienia Gradle zawiesiły się i na mojej liście zadań znajdowało się 6 wpisów wiersza polecenia, które zostały uruchomione przez Javę.

Wymuszenie zamknięcia instancji wiersza polecenia pozwoliło mi kontynuować normalną pracę.

Knossos
źródło
0

Jego praca dla mnie dla problemu: -

„Błąd: przekroczono limit czasu oczekiwania na zablokowanie słoików. Obecnie jest używany przez inną instancję Gradle. PID właściciela: 6896 Nasz PID: 5048 Operacja właściciela: Nasza operacja: Zablokuj”

Rozwiązanie:-

  1. zamknij Android Studio i otwórz Menedżera zadań i zakończ proces java.exe
  2. otwórz derectory .... gradle \ caches.
  3. Usuń plik jar2.lock.
  4. Otwórz Android Studion i wyczyść projekt.
user3552453
źródło
0

Wypróbowałem wszystkie te odpowiedzi, w tym zabij proces java, usuń .gradle w HOME_DIR i katalogu projektu, zrestartowałem Android Studio, a nawet zrestartowałem system operacyjny.

Zaczęło działać normalnie dopiero po uruchomieniu synchronizacji gradle.

B-GangsteR
źródło
0

Bardzo proste rozwiązanie:

nie trzeba zabijać Android Studio, po prostu zabij OpenJdkPlatformproces, a następnie usuń .lockplik znajdujący się w:

rootProject/.gradle/<version>/taskHistory
Amir Hossein Ghasemi
źródło
0

Podczas zabijania procesu i / lub usuwania pliku blokady działa, Gradle powinien poradzić sobie z tym samodzielnie, rozwiązując problem na stałe . Ten raport o problemie wskazuje rozwiązanie: Gradle nie może komunikować się z usługą gradle.

Przyjrzyj się lokalnej zaporze sieciowej. W moim przypadku,

  • zezwolenie na ruch wychodzący od 127.0.0.1 do 127.0.0.1,

    sudo iptables -A OUTPUT -p udp -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
    
  • zezwalając na ruch przychodzący z 127.0.0.1

    sudo iptables -A INPUT -s 127.0.0.1 -p udp -j ACCEPT
    

rozwiązał problem. Dyskusja na temat podobnego problemu na github .

Proszę odnieść się do dowolnego łącza, aby poszerzyć moją wiedzę na temat systemu Gradle Build w systemie Android.

Kurs oceny udacity , jeśli masz trochę czasu.

serv-inc
źródło
0

otwórz terminal i przejdź do ścieżki projektu, a następnie uruchom w zależności od systemu operacyjnego: gradlew clean lub ./gradlew clean

Abdo Driowya
źródło
0

Miałem ten sam problem. Ale rozwiązałem to, po prostu ponownie uruchamiając moje studio Android. Używam OneDrive, aby zapisać mój projekt.

Vishal Shinde
źródło
0

Miałem ten sam problem i zrobiłem dwa kroki i został rozwiązany.

  1. Mój JDK nie został zainstalowany na Macu (zapomniałem zainstalować). Zainstalowałem go.
  2. Usunąłem wszystkie elementy z folderu caches znajdującego się w tej ścieżce /Users/icon_developer/.gradle/ i przebudowałem projekt. Zadziałało!
Intsab Haider
źródło
0

w końcu wszyscy mam kompletne rozwiązanie

Error :- Timeout Gradle cashe its running in other gradle


distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

Please add this Line in Wrapper.Propertis and Sync now
After Sync the project When 
Invalidthcast\restart   to get the requesting componants
Zespół Androida
źródło
0

Za bardzo utknąłem w tym samym. Ale wkrótce zostało to rozwiązane. Po prostu usuń plik:

D:\.gradle\daemon\6.1.1\registry.bin.lock

również zakończyłem OpenJDK z poziomu menedżera zadań. Czy to pomogło, czy nie, ale obaj rozwiązali problem.

Gyanstark
źródło
0

W moim przypadku po prostu zamknąłem Android Studio i ponownie je otworzyłem, problem został rozwiązany.

Emi Raz
źródło
0

Aby rozwiązać ten problem w systemie Windows

  1. Idź do Menedżera zadań
  2. Znajdź identyfikator PID właściciela w „szczegółach” menedżera zadań
  3. Zakończ zadanie
Atul Dk
źródło
0

Dla mnie na komputerze Mac zaznacz u Filegóry, a następnie wybierz Invalidate Caches / Restart...załatwione.

Ładne, proste rozwiązanie, jeśli działa również dla Ciebie!

Jim Tierney
źródło