Làm cách nào để đặt JDK cho Android Studio?


42

Tôi không thể biên dịch dự án mới mặc định cho Android 2.1 (?) JDK được sử dụng bởi Android Studio là JDK 1.7 nhưng nó phải là JDK 1.6.

Để thay đổi nó, tôi đi đến Tệp -> Cấu trúc dự án và cố gắng tìm vị trí JDK 1.6.

Nhưng khi tôi chọn thư mục của nó và nhấn OKtôi gặp lỗi sau:

Vui lòng chọn một thư mục JDK hợp lệ

Vui lòng chọn một thư mục JDK hợp lệ

Như bạn có thể thấy trên màn hình, tôi đang cố gắng đặt Java 6 OpenJDK 64 bit làm JDK mới.

Tôi có thể làm gì? Android Studio không tương thích với OpenJDK và tôi có nên sử dụng Oracle JDK không?


Bạn đã thử binthư mục?
Louis Matthijssen

Tôi đã thử với: ./bin| ./jre| ./jre/bincùng một thông điệp cho tất cả
Lucio

1
Đối với tôi, tôi chỉ phải sử dụng thư mục trên /jretrong cấu trúc thư mục, vì vậy đường dẫn của tôi là /usr/lib/jvm/java-8-oraclevà không /usr/lib/jvm/java-8-oracle/jre. Tôi giả sử đường dẫn sẽ kết thúc /jrevì đường dẫn mặc định (JDK "được nhúng" thực hiện, nhưng hóa ra nếu bạn đi tìm trong thư mục mặc định, đó là một thư mục có tên "jre" chứa thư mục khác gọi là "jre" .
Jack M

Câu trả lời:


24

Tôi đang sử dụng OpenJDK 7 với Android Studio và nó hoạt động rất tốt. (Tôi thậm chí không cài đặt Oracle JDK vào lúc này.)

Trên màn hình mà bạn đang hiển thị (Cấu trúc dự án -> Vị trí SKD) Tôi có đường dẫn sau cho vị trí JDK : /usr/lib/jvm/java-1.7.0-openjdk-amd64.


8

Bằng cách kiểm tra studio.sh, bạn cũng có thể thiết lập một trong STUDIO_JDK, JDK_HOMEhoặc JAVA_HOMEmôi trường biến để trỏ đến vị trí JDK.


studio.shkiểm tra STUDIO_JDK, JDK_HOMEJAVA_HOMEmôi trường biến theo thứ tự:

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"

Vì vậy, bạn có thể chỉ cần đặt chúng là phù hợp và sau đó Studio sẽ chọn nó.


Điều này làm việc cho các cửa sổ quá. hữu ích nếu bạn có JDK với DCEVM như mặc định trong JAVA_HOME không hoạt động với studio android.
Mateus Viccari

5

Có vẻ như Android Studio không nhận ra OpenJDK, vì vậy tôi cần cài đặt OracleJDK .

Sau đó, tôi chọn đường dẫn đến Oracle JDK và nó đã hoạt động!


tôi đã cài đặt nó nhưng tôi không thể thiết lập biến đường dẫn của nó. bạn có thể vui lòng cho tôi biết làm thế nào tôi có thể làm điều đó?
Nitesh Verma

1
Có, trước tiên hãy đảm bảo rằng java -versionđầu ra chính xác phiên bản Java của bạn . Sau đó, trên cửa sổ AS chọn /usr/lib/jvm/jdk1.8.0/. Đó là đủ cho tôi tại thời điểm đó :-)
Lucio

3

Điều này làm việc cho tôi:

  1. Tìm ra thư mục java:

    $ echo $JAVA_HOME
    /usr/lib/jvm/java-7-oracle
  2. Mở Android Studio và sau đó File-> Cấu trúc dự án.

  3. Trong Vị trí SDK Tôi qua thư mục java từ phía trên
  4. Đợi một vài giây và tôi đã nhận được "0 lỗi 0 advertencias"

Nó đã làm việc! :)


2

Các bước tôi làm theo:

  1. Đã mở terminal và nhập echo $JAVA_HOME

  2. Sao chép đường dẫn được hiển thị trong thiết bị đầu cuối - Ctrl+ Shift+ Csao chép trong thiết bị đầu cuối Ubuntu

  3. Trong studio Android - Cấu trúc dự án - Đã dán đường dẫn sao chép

  4. Chờ phần mềm nhận ra và cập nhật cài đặt

  5. Điều này đã giải quyết vấn đề về cài đặt Jdk không hợp lệ


1

Nếu bạn có một ./binthư mục có JDK và Android Studio, bạn có thể đặt STUDIO_JDKbiến trước khi chạy studio.shtrong một thiết bị đầu cuối:

STUDIO_JDK=./bin/jdk/ ./bin/android-studio/bin/studio.sh

0

Tôi đã khắc phục vấn đề này. Tôi sử dụng AS 2.1 và JDK1.7 trong khi nó yêu cầu tôi cập nhật JDK1.8 cho một số chức năng. Tôi tải về tập tin cài đặt java. Có lẽ tôi chỉ cài đặt jre chứ không phải jdk. vì vậy AS luôn cảnh báo tôi rằng "Vui lòng chọn thư mục JDK hợp lệ". Vì vậy, tôi đoán vấn đề của người hỏi giống như tôi rằng bạn nên cài đặt JDK nhưng không phải jre.


0

Tôi nghĩ rằng bạn có thể đã cài đặt jdk ở một nơi khác chẳng hạn /usr/local/java. Trong trường hợp của tôi, tôi cũng thấy tên thư mục tương tự trong thư mục hiển thị trong ảnh chụp màn hình của bạn.

Vì vậy, chỉ cần kiểm tra nếu jdk có mặt ở một nơi khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.