Jak ustawić JDK dla Androida Studio?

42

Nie mogę skompilować domyślnego nowego projektu dla Androida 2.1, ponieważ (?) JDK używany przez Android Studio to JDK 1.7, ale powinien to być JDK 1.6.

Aby to zmienić, idę do Plik -> Struktura projektu i próbuję znaleźć lokalizację JDK 1.6.

Ale kiedy wybieram jego katalog i naciskam, pojawia OKsię następujący błąd:

Wybierz prawidłowy katalog JDK

Wybierz prawidłowy katalog JDK

Jak widać na ekranie, próbuję ustawić Java 6 OpenJDK 64-bit jako nowy JDK.

Co mogę zrobić? Czy Android Studio nie jest kompatybilny z OpenJDK i czy zamiast tego powinienem używać Oracle JDK?

Lucio
źródło
Próbowałeś już binfolderu?
Louis Matthijssen
Próbowałem z: ./bin| ./jre| ./jre/binta sama wiadomość dla wszystkich
Lucio
1
Dla mnie musiałem po prostu użyć powyższego folderu /jrew strukturze katalogów, więc moja ścieżka jest /usr/lib/jvm/java-8-oraclei nie /usr/lib/jvm/java-8-oracle/jre. Zakładam, że ścieżka powinna kończyć się, /jreponieważ domyślna ścieżka („osadzony” JDK) tak, ale okazuje się, że jeśli przejrzysz domyślny folder, jest to folder o nazwie „jre”, który zawiera inny folder o nazwie „jre” .
Jack M

Odpowiedzi:

24

Używam OpenJDK 7 z Android Studio i działa dobrze. (W tej chwili nie mam nawet zainstalowanego Oracle JDK.)

Na tym ekranie, które są wykazujące (struktura projektu -> Położenie SKD) Mam następującą ścieżkę do lokalizacji JDK : /usr/lib/jvm/java-1.7.0-openjdk-amd64.

Daniel
źródło
8

Sprawdzając studio.sh, można także ustawić jedną STUDIO_JDK, JDK_HOMElub JAVA_HOMEzmienne środowiskowe, aby wskazywała na lokalizację JDK.


studio.shsprawdza STUDIO_JDK, JDK_HOMEi JAVA_HOMEzmienne środowiskowe w celu:

if [ -n "$STUDIO_JDK" -a -x "$STUDIO_JDK/bin/java" ]; then
  JDK="$STUDIO_JDK"
elif [ -n "$JDK_HOME" -a -x "$JDK_HOME/bin/java" ]; then
  JDK="$JDK_HOME"
elif [ -n "$JAVA_HOME" -a -x "$JAVA_HOME/bin/java" ]; then
  JDK="$JAVA_HOME"

Możesz więc ustawić je odpowiednio, a następnie Studio je odbierze.

Nuno
źródło
Działa to również w systemie Windows. przydatne, jeśli masz JDK z DCEVM domyślnie w JAVA_HOME, który nie działa z Android Studio.
Mateus Viccari,
5

Wygląda na to, że Android Studio nie rozpoznaje OpenJDK, więc muszę zainstalować OracleJDK .

Następnie wybrałem ścieżkę do Oracle JDK i zadziałało!

Lucio
źródło
zainstalowałem go, ale nie jestem w stanie ustawić jego zmiennej ścieżki. czy możesz mi powiedzieć, jak to zrobić?
Nitesh Verma
1
Tak, najpierw upewnij się, że java -versionwypisujesz poprawnie swoją wersję Java . Następnie w oknie AS wybierz /usr/lib/jvm/jdk1.8.0/. W tym momencie mi to wystarczyło :-)
Lucio
3

To działało dla mnie:

  1. Znajdź katalog java:

    $ echo $JAVA_HOME
    /usr/lib/jvm/java-7-oracle
    
  2. Otwórz Android Studio, a następnie Plik-> Struktura projektu.

  3. W lokalizacji SDK obok katalogu java z góry
  4. Poczekaj kilka sekund, a dostaję „0 błędów 0 reklam”

Zadziałało! :)

Canorios
źródło
2

Kroki, które wykonałem:

  1. Otwórz terminal i wejdź echo $JAVA_HOME

  2. Skopiowano ścieżkę wyświetlaną w terminalu - Ctrl+ Shift+ Ckopiuj w terminalu Ubuntu

  3. W Android studio - Struktura projektu - Wkleiłem skopiowaną ścieżkę

  4. Czekałem, aż oprogramowanie rozpozna i zaktualizuje ustawienia

  5. To rozwiązało problem nieprawidłowych ustawień Jdk

anand24
źródło
1

Jeśli masz ./binfolder z JDK i Android Studio, możesz ustawić STUDIO_JDKzmienną przed uruchomieniem studio.shw terminalu:

STUDIO_JDK=./bin/jdk/ ./bin/android-studio/bin/studio.sh
antoineMoPa
źródło
0

Naprawiłem ten problem. Używam AS 2.1 i JDK1.7, podczas gdy wymagało to aktualizacji JDK1.8 dla niektórych funkcji. Pobieram plik instalacyjny Java. Może zainstalowałem tylko jre, ale nie jdk. więc JAK zawsze ostrzegam, że „Proszę wybrać prawidłowy katalog JDK”. Więc myślę, że problem pytającego jest taki sam jak ja, że ​​powinieneś zainstalować JDK, ale nie Jre.

Songtao Lou
źródło
0

Myślę, że mógłbyś zainstalować jdk gdzieś indziej np /usr/local/java. W moim przypadku widziałem również tę samą nazwę folderu w katalogu pokazanym na twoim zrzucie ekranu.

Więc po prostu sprawdź, czy jdk jest obecny gdzie indziej.

Udayraj Deshmukh
źródło