Jak poinstruować Gradle, aby korzystał z Java z innej lokalizacji?


9

Budowałem moją aplikację testową w Android Studio, a następnie w dzienniku zdarzeń było napisane:

Android Studio używa tej lokalizacji JDK: C: \ Program Files \ Android \ Android Studio \ jre, która jest inna niż domyślnie używana przez Gradle: C: \ Program Files (x86) \ Java \ jdk1.8.0_181 Korzystanie z różnych lokalizacji może się odrodzić wiele demonów Gradle, jeśli zadania Gradle są uruchamiane z wiersza poleceń podczas korzystania z Android Studio.

Następnie dał te opcje:

  1. Więcej informacji...
  2. Ustaw Android Studio do korzystania z tego samego JDK co Gradle i synchronizacji
  3. Nie pokazuj więcej tego ostrzeżenia

Kliknąłem na:

Ustaw Android Studio do korzystania z tego samego JDK co Gradle i synchronizacji

wtedy moja aplikacja nie chciała więcej budować.

To jest błąd:

Synchronizacja stopniowa nie powiodła się: nie można uruchomić procesu demona.
Przyczyną tego problemu może być niepoprawna konfiguracja demona.

Na przykład używana jest nierozpoznana opcja jvm.
Proszę zapoznać się z rozdziałem Instrukcja obsługi demona na https://docs.gradle.org/5.4.1/userguide/gradle_daemon.html

Przetwórz wiersz poleceń: C: \ Program Files (x86) \ Java \ jdk1.8.0_181 \ bin \ java.exe -Xmx1536m -Dfile.encoding = windows-1252 -Duser.country = ZA -Duser.language = en -Użytkownik. wariant -cp C: \ Users \ {MyUserName} \. gradle \ wrapper \ dists \ gradle-5.4.1-all \ 3221gyojl5jsh0helicew7rwx \ gradle-5.4.1 \ lib \ gradle-launcher-5.4.1.jar org.gradle. launcher.daemon.bootstrap.GradleDaemon 5.4.1

Przeczytaj następujące dane wyjściowe procesu, aby dowiedzieć się więcej:

Wystąpił błąd podczas inicjowania maszyny wirtualnej. Nie można zarezerwować wystarczającej ilości miejsca na stertę obiektów 1572864 KB. Więcej informacji można znaleźć w dzienniku IDE (Pomoc | Pokaż dziennik) (16 s 166 ms)

Sprawdziłem dzienniki zdarzeń:

Myślę, że wcześniej to zrobiło:

Instruowanie gradle do korzystania z Java z C: / Program Files / Android / Android Studio / jre

Teraz mówi to:

Poinstruowanie gradla, aby używał java z C: / Program Files (x86) /Java/jdk1.8.0_181

Jak przywrócić poprzednią konfigurację, aby moja aplikacja mogła budować ponownie?

Każda pomoc / rada będzie mile widziana

Odpowiedzi:


2

Przejdź do pliku, struktury projektu, lokalizacji SDK i zmień listę rozwijaną lokalizacji JDK na JAVA_HOME.

Struktura projektu w Androdi Studio 3.6 beta


1
Próbowałem, a następnie ten sam błąd, co w moim pytaniu. Mam 64-bitowy system Windows.
Shiasu-sama

1

Musisz zmienić / dodać zmienną środowiskową.

Kliknij ten link, aby dowiedzieć się, jak zmieniać / dodawać zmienne środowiskowe.

Teraz dodaj / zmodyfikuj zmienną „JAVA_HOME” i ustaw ścieżkę na C:\Program Files\Android\Android Studio\jre

Uwaga: jeśli zamierzasz później pracować nad innym projektem Java w innym środowisku IDE, być może będziesz musiał ponownie zmienić tę zmienną na domyślną lokalizację Java (w tym przypadku być może C:/Program Files (x86)/Java/jdk1.8.0_181)


0

Gradle wyraźnie korzysta z mojej natywnej instalacji Java (z Oracle), podczas gdy Android Studio używa własnej wersji.

Ignorowałem to ostrzeżenie od czasu aktualizacji Androida Studio do wersji 3.6.1. Jak dotąd żaden problem. Rzeczywiście, wydałem nowe wersje mojej aplikacji bez problemów.

Jeśli stanie się to denerwujące, a JEŻELI nie będziesz mieć innych problemów, możesz zignorować przyszłe ostrzeżenia: po prostu naciśnij ostrzeżenie i wybierz opcję ignorowania przyszłych komunikatów związanych z tym ostrzeżeniem.


0

Ubuntu 16.04 LTS, Android Studio 3.6

W ten sposób pozbyłem się ostrzeżenia:

1) zlokalizuj skrypt uruchamiający AS studio.shna twoim komputerze, mój jest poniżej: /opt/android-studio-3.x/bin
2) wewnątrz skryptu, znajdziesz następujące wiersze:

# ---------------------------------------------------------------------
# Locate a JDK installation directory which will be used to run the IDE.
# Try (in order): STUDIO_JDK, studio.jdk, ./jre64, JDK_HOME, JAVA_HOME, "java" in PATH.
# ---------------------------------------------------------------------
if [ -n "$STUDIO_JDK" -a -x "$STUDIO_JDK/bin/java" ]; then
  JDK="$STUDIO_JDK"
fi

if [ -z "$JDK" -a -s "$HOME/.AndroidStudio3.6/config/studio.jdk" ]; then
  USER_JRE=`"$CAT" $HOME/.AndroidStudio3.6/config/studio.jdk`
...

3) jeśli z jakiegoś powodu nie możesz wyeksportować zmiennych środowiskowych do programu uruchamiającego (jak to się dzieje z sesją xfce4), możesz zapisać żądaną JAVA_HOMEwartość w studio.jdkpliku, którego lokalizację w moim systemie, zgodnie z skrypt jest włączony $HOME/.AndroidStudio3.6/config/studio.jdk.

$ echo $JAVA_HOME > $HOME/.AndroidStudio3.6/config/studio.jdk
$ cat $HOME/.AndroidStudio3.6/config/studio.jdk
/usr/lib/jvm/java-8-oracle

4) na koniec, ponownie uruchamiając AS z sesji DE, powinieneś zobaczyć JAVA_HOMEpod Plik -> Struktura projektu -> Położenie SDK ustawione na powyższą wartość, a zarówno AS, jak i stopień powinny używać tego samego środowiska JRE:

Okno struktury projektu


-1

W Android Studio:

Plik> Struktura projektu ...> Lokalizacja SDK (w lewym okienku)

Następnie u dołu znajduje się lista rozwijana poniżej: Lokalizacja JDK:

Następnie wybrałem / przeszukałem ten katalog:

C: \ Program Files \ Java \ jdk1.8.0_181

Gradle Sync znów działał dla mnie potem, ale wciąż pojawia się to ostrzeżenie:

Android Studio używa tej lokalizacji JDK: C: \ Program Files \ Java \ jdk1.8.0_181, która jest inna niż domyślnie używana przez Gradle: C: \ Program Files (x86) \ Java \ jdk1.8.0_181 . Korzystanie z różnych lokalizacji może spowodować odrodzenie wielu demonów Gradle, jeśli zadania Gradle są uruchamiane z wiersza poleceń podczas korzystania z Android Studio.

  1. Więcej informacji...
  2. Ustaw Android Studio do korzystania z tego samego JDK co Gradle i synchronizacja projektu
  3. Nie pokazuj więcej tego ostrzeżenia

Potem kliknąłem niezadowalające: „Nie pokazuj tego ostrzeżenia ponownie”: /
Shiasu-sama
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.