Cách đặt nguồn 1.7 trong Android Studio và Gradle


177

Tôi đang gặp lỗi sau khi cố gắng biên dịch dự án của mình trong Android Studio:

Gradle: error: diamond operator is not supported in -source 1.6

Tôi đã đặt 1.7 làm mục tiêu trong tất cả các tùy chọn dự án mà tôi đã tìm thấy. Ngoài ra, đường dẫn được hiển thị trong SDK SDK dưới 1.7 của dự án là đường dẫn chính xác đến cài đặt java 1.7.

Ngay cả khi tôi chạy java -version trong terminal, nó vẫn báo cho tôi biết tôi đang chạy trên java 1.7.

Tôi đã cố gắng đặt biến env JAVA_HOME cho điều này:

/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home

Lỗi không biến mất. Làm thế nào để tôi loại bỏ lỗi?


Bạn đã sourceCompatibilitythiết lập trong build.gradle của mình chưa?
fge

Hỗ trợ Java 7 đã được thêm vào tại các công cụ xây dựng 19. Vui lòng kiểm tra câu trả lời đã chỉnh sửa của tôi.
Sergii Pechenizkyi

Câu trả lời:


289

Hỗ trợ Java 7 đã được thêm vào tại các công cụ xây dựng 19. Bây giờ bạn có thể sử dụng các tính năng như toán tử kim cương, đa bắt, thử tài nguyên, chuỗi trong các công tắc, v.v. Thêm các mục sau vào build.gradle.

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 19
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

Lớp 1.7+, plugin cấp độ Android 0.6. + Được yêu cầu.

Lưu ý, chỉ thử với tài nguyên yêu cầu minSdkVersion19. Các tính năng khác hoạt động trên các nền tảng trước đó.

Liên kết với hướng dẫn sử dụng plugin Android gradle

Liên kết để xem nguồn so với mục tiêu khác nhau như thế nào


1
Điều này chỉ hoạt động trong Android Studio hay có thể làm cho công việc này cũng hoạt động trong Eclipse với ADT không?
Natix

1
Có thể với ADT mới nhất cho Eclipse. Kiểm tra mô tả đầy đủ tại đây: sites.google.com/a/android.com/tools/recent/ từ
Sergii Pechenizkyi

7
woohoo cho chuyển mạch chuỗi!
viên

10
Lưu ý rằng chỉ có thể sử dụng tài nguyên thử với API 19 trở lên.
Alex Lockwood

73

Có thể những câu trả lời ở trên đã cũ nhưng với Android Studios 1 mới, bạn làm như sau để xem mô-đun chạy trên 1.7 (hoặc 1.6 nếu bạn thích). Bấm vào Tệp -> Cấu trúc dự án. Chọn mô-đun bạn muốn chạy và sau đó trong "Tương thích nguồn" và "Tương thích mục tiêu", chọn 1.7. Nhấp vào "OK".

Màn hình cấu trúc dự án của Android Studios 1


5
Tôi đoán đây là câu trả lời chính xác cho android-studio mới nhất. Ước gì tôi có thể làm cho điều này cũng là một câu trả lời chính xác ..
khen ngợi

1
Điều này về cơ bản giống như câu trả lời được chấp nhận.
Kerem

1
Đây chỉ là một tính năng tiện lợi, nó sẽ chèn mã "compileOptions" được mô tả trước đó vào tệp lớp.
user3259330

Làm thế nào tôi có thể thiết lập này thành 8?
Chiến tranh neon

Tôi không thể thấy 1.8 và 1.9? Mặc dù Giới thiệu -> Trợ giúp cho biết studio Android đang sử dụng 1.8 JRE.
Srikar Reddy

14

Bạn có thể thay đổi nó trong phiên bản studio Android mới (0.8.X)

FIle-> Cài đặt khác -> Cài đặt mặc định -> Trình biên dịch (Mở rộng nó bằng cách nhấp vào mũi tên trái) -> Trình biên dịch Java -> Bạn có thể thay đổi phiên bản mã byte dự án tại đây

nhập mô tả hình ảnh ở đây


8

Studio Android mới nhất 1.4.

Bấm vào Tệp-> Cấu trúc dự án-> Vị trí SDK-> Vị trí JDK.

Bạn cũng có thể đặt khả năng tương thích Phiên bản JDK của từng mô-đun bằng cách đi tới Mô-đun (bên dưới Vị trí SDK) và chỉnh sửa Tương thích nguồn tương ứng. (lưu ý, điều này chỉ áp dụng cho Mô-đun Android).


Cài đặt này gây nhầm lẫn, bởi vì nó ảnh hưởng đến tất cả các dự án, mặc dù nó được đặt tên là "Cấu trúc dự án".
Oliver Hausler

5

Nhấp chuột phải vào dự án của bạn> Mở Cài đặt mô-đun> Chọn "Dự án" trong phần "Cài đặt dự án"

Thay đổi SDK dự án thành mới nhất (có thể là API 21) và cấp ngôn ngữ dự án thành 7+


4

Hiện tại, Android không hỗ trợ Java 7, chỉ có Java 6. Các tính năng mới trong Java 7 như cú pháp kim cương hiện không được hỗ trợ. Tìm các nguồn để hỗ trợ điều này không dễ, nhưng tôi có thể thấy rằng công cụ Dalvic được xây dựng dựa trên một tập hợp con của Apache Harmony chỉ hỗ trợ Java cho đến phiên bản 6. Và nếu bạn kiểm tra các yêu cầu hệ thống để phát triển ứng dụng Android thì nó cũng nêu rằng ít nhất JDK 6 là cần thiết (mặc dù điều này tất nhiên không phải là bằng chứng thực sự, chỉ là một dấu hiệu). Và điều này nói khá giống như tôi có. Nếu tôi tìm thấy bất cứ điều gì tài chính hơn, tôi sẽ thêm nó.

Chỉnh sửa: Có vẻ như hỗ trợ Java 7 đã được thêm vào do ban đầu tôi đã viết câu trả lời này; kiểm tra câu trả lời của Sergii Pechenizkyi .


2
Ở đây, một câu hỏi tương tự với một liên kết về cách khắc phục vấn đề: stackoverflow.com/questions/14487682/ Lời
blalasaadri

2

Luôn sử dụng phiên bản SDK mới nhất để xây dựng:

compileSdkVersion 23

không ảnh hưởng đến hành vi thời gian chạy , nhưng cung cấp cho bạn các tính năng lập trình mới nhất.


2

Đi vào Gradle của bạn và tìm kiếm SourceCompabilities và thay đổi nó từ 1.6 thành 7 . Điều đó làm việc cho tôi ít nhất.

Bạn cũng có thể đi vào cài đặt mô-đun của mình và đặt Khả năng tương thích nguồn / mục tiêu thành 1.7.

Cửa sổ cài đặt mô-đun

Điều đó sẽ tạo ra mã sau đây trong Gradle của bạn:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}
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.