2015-06-15 16 views
7

użyłem komendy Gradle budować w Centos 7 terminalu i mam wyjścia:Gradle nie można utworzyć usługę typu InitScriptHandler korzystając BuildScopeServices.createInitScriptHandler()

BŁĄD: Budowa niepowodzeniem z wyjątek.

  • Co poszło nie tak: Nie można utworzyć usługę typu InitScriptHandler korzystając BuildScopeServices.createInitScriptHandler().

  • Spróbuj: Uruchom z opcją --stacktrace, aby uzyskać ślad stosu. Uruchom z opcją --info lub --debug, aby uzyskać więcej wyników dziennika.

+1

Czy masz odpowiednie uprawnienia do uruchomienia polecenia? – Opal

+0

Myślę, że masz rację, problem polega na uprawnieniach, ponieważ w grobie root'a działa poprawnie, próbuję ustawić 777 uprawnień do gradowania folderów za pomocą polecenia chmod -R 777 ./gradle-2.4, ale błąd nadal występuje. Folder Gradle rozpakowałem w katalogu domowym użytkownika, z którym otrzymuję błąd opisany powyżej. –

+0

Plonowanie 'sudo' przed poleceniem, które wpisałem, naprawiło to. Komunikat o błędzie może być nieco bardziej pomocny w tym zakresie. – ben3000

Odpowiedz

12

Spróbuj ustawić zmienną GRADLE_USER_HOME w folderze, do którego masz prawidłowy dostęp. Wtedy ten błąd zniknie.

Na przykład: W dniu dzisiejszym spotkałem się z tym samym problemem, gdy wykonywałem polecenie "gradle clean" na nowej maszynie podrzędnej.

Moja wersja Gradle miała 2,3.

Z --stacktrace, dowiedziałem się, że próbował utworzyć folder ".gradle" do przechowywania danych cache Gradle'a (podczas gdy wywołałem Gradle, aby uruchomić czyste zadanie na slave) i próbował utworzyć ten folder pod /some/location/where/gradle/exists LUB some/path/location/xxx/yyy, gdzie użytkownik, który korzystał z Gradle na maszynie podrzędnej, nie miał poprawnego dostępu do zapisu (utwórz folder/pliki).

tj. Użytkownik, z którym łączyłem się z maszyny Jenkinsa do niewolnika, nie miał prawa zapisu do dotknięcia/mkdir niczego w domyślnej lokalizacji (gdzie Gradle pomyślał, OK, powinienem stworzyć tutaj folder .gradle).

Aby to naprawić, dodałem powyższą zmienną GRADLE_USER_HOME w sekcji Zmienna ŚRODOWISKO PODARUNKU. Teraz, ponieważ mam prawidłowy dostęp do mojego katalogu domowego, wszystko było OK.

Otoczenie:

GRADLE_USER_HOME=~/gradle_2_3_cache/.gradle 

rozwiązany.

Można również ustawić opcję ~/.gradle. Ale ustawiłem go pod niestandardowym folderem wewnątrz mojego ~ katalogu domowego (gradle_2_3_cache). Pomoże mi to w przypadku, gdybym miał innego niewolnika działającego na tym samym komputerze Slave, ale z inną wersją Gradle dla wersji ex 2.5 itd. I jeśli chcę mieć pamięć podręczną .gradle dla wersji 2.3 i 2.5/x w oddzielnych folderach.

+0

Czy możesz wyjaśnić to bardziej szczegółowo. Ponieważ ja również stoję w obliczu problemu. I jestem nową Bee w systemie Android. –

2

Miałem ten sam problem. Dla mnie zadziałało po tym, jak wykluczyłem folder .grandle, jeśli nie możesz usunąć, spróbuj zmienić nazwę.

0

Do wykorzystania w przyszłości. miałem ten sam problem, problem był taki, że program antywirusowy blokuje openjdk platformy binarne i java.exe który uniemożliwiał android studio od bycia w stanie modyfikować pliki

1

Dla mnie zabija demona Gradle naprawdę pomogło i naprawiono problem.

+0

To samo, mój dysk był pełny, ale nawet po zrobieniu większej ilości miejsca nadal nie działałby, ponieważ demon Gradle nie otrzymał wiadomości z jakiegoś powodu. – wkarl

0

Jeśli używasz wraplew gradlew, w katalogu głównym root.gradle_new

mkdir .gradle_new 
chmod -R 777 .gradle_new 

i uruchomić gradlew z argumentami:

--project-cache-dir .gradle_new 
Powiązane problemy