Android Studio ve Gradle'da -source 1.7 nasıl ayarlanır


177

Projemi Android Studio'da derlemeye çalışırken şu hatayı alıyorum:

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

Bulduğum tüm proje tercihlerinde 1.7 olarak hedef belirledim. Ayrıca 1.7 SDK altındaki proje SDK'larında görüntülenen yol, java 1.7 kurulumuna giden doğru yoldur.

Terminalde java -version çalıştırdığımda bile, java 1.7 üzerinde çalıştığımı söylüyor.

Bu JAVA_HOME env değişkeni ayarlamak için çalıştı:

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

Hata ortadan kalkmaz. Hatayı nasıl ortadan kaldırabilirim?


Eğer var mı sourceCompatibilitysenin build.gradle ayarlanan?
fge

Oluşturma araçları 19'a Java 7 desteği eklendi. Lütfen düzenlenen cevabımı kontrol edin.
Sergii Pechenizkyi

Yanıtlar:


289

Oluşturma araçlarına 19 Java 7 desteği eklendi. Artık elmas operatörü, çoklu yakalama, kaynaklarla deneme, anahtarlardaki dizeler vb. Gibi özellikleri kullanabilirsiniz 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
    }
}

Gradle 1.7+, Android gradle eklentisi 0.6. + Gereklidir.

Sadece kaynaklarla denemek gerektiğini unutmayın. minSdkVersionDiğer özellikler önceki platformlarda çalışır.

Android Gradle Eklentisi Kullanıcı Kılavuzu bağlantısı

Kaynak ve hedef arasındaki farkları görme bağlantısı


1
Bu yalnızca Android Studio'da mı çalışıyor yoksa ADT ile Eclipse'de de bu işi mümkün mü?
Natix

1
Eclipse için en son ADT ile mümkündür. Tam açıklamayı buradan kontrol edin: sites.google.com/a/android.com/tools/recent/…
Sergii Pechenizkyi

7
dize anahtarları için woohoo!
kodlayıcı

10
Kaynaklarla deneme özelliğinin yalnızca API 19 veya üstü ile kullanılabileceğini unutmayın.
Alex Lockwood

73

Belki de yukarıdaki cevaplar eski ama yeni Android Studios 1 ile, modülü 1.7'de (veya isterseniz 1.6'da) çalıştırmak için aşağıdakileri yapıyorsunuz. Dosya -> Proje Yapısı'na tıklayın. Çalıştırmak istediğiniz modülü seçin ve ardından "Kaynak Uyumluluğu" ve "Hedef Uyumluluğu" altında 1.7'yi seçin. "Tamam" ı tıklayın.

Android Stüdyoları Proje Yapısı ekranı 1


5
Bu en son android-stüdyo için doğru cevap sanırım. Ben de bu doğru bir cevap
yapabilseydim

1
Bu aslında kabul edilen cevapla aynıdır.
Kerem

1
Bu sadece bir kolaylık özelliğidir, daha önce açıklanan "compileOptions" kodunu gradle dosyasına ekler.
user3259330

Bunu nasıl 8 olarak ayarlayabilirim?
Neon Warge

1.8 ve 1.9'u göremiyorum? Hakkında -> Yardım Android stüdyosu 1.8 JRE kullanıyor olsa da.
Srikar Reddy

14

Yeni Android stüdyosu sürümünde (0.8.X) değiştirebilirsiniz

Dosya-> Diğer Ayarlar -> Varsayılan Ayarlar -> Derleyici (Sol oka tıklayarak genişletin) -> Java Derleyici -> Proje bayt kodu sürümünü buradan değiştirebilirsiniz

resim açıklamasını buraya girin


8

En son Android Studio 1.4.

Dosya-> Proje Yapısı-> SDK Konumu-> JDK Konumu öğesine tıklayın.

Modül'e (SDK Konumunun altında) giderek ayrı ayrı JDK Sürüm uyumluluğu modülünü ayarlayabilir ve Kaynak Uyumluluğunu uygun şekilde düzenleyebilirsiniz. (bu yalnızca Android Modülü için geçerlidir).


Bu ayar kafa karıştırıcıdır, çünkü "Proje Yapısı" olarak adlandırılsa bile tüm projeleri etkiler.
Oliver Hausler

5

Projenize sağ tıklayın> Modül Ayarını Aç> "Proje Ayarı" bölümünde "Proje" yi seçin

Project SDK'sını en son (API 21 olabilir) ve Project dil düzeyini 7+ olarak değiştirin


4

Şu anda, Android Java 7'yi değil, yalnızca Java 6'yı desteklememektedir. Bu nedenle, Java 7'deki elmas sözdizimi gibi yeni özellikler şu anda desteklenmemektedir. Bunu destekleyecek kaynaklar bulmak kolay değil, ancak Dalvic motorunun, Java'yı yalnızca sürüm 6'ya kadar destekleyen bir Apache Harmony alt kümesi üzerine inşa edildiğini bulabilirim. Android uygulamalarını geliştirmek için sistem gereksinimlerini kontrol ederseniz en azından JDK 6'ya ihtiyaç var (bu elbette gerçek bir kanıt değil, sadece bir gösterge). Ve bu da benimkiyle hemen hemen aynı diyor. Daha temel bir şey bulursam ekleyeceğim.

Edit: Görünüşe göre ben bu cevabı yazdım beri Java 7 desteği eklendi; Cevabı Sergii Pechenizkyi kontrol edin .


2
Burada, sorunun üstesinden gelmek için bir bağlantı içeren benzer bir soru: stackoverflow.com/questions/14487682/…
blalasaadri

2

Aşağıdakileri oluşturmak için her zaman en son SDK sürümünü kullanın:

compileSdkVersion 23

Çalışma zamanı davranışını etkilemez , ancak size en yeni programlama özelliklerini sunar.


2

Senin Gradle gidin ve için göz sourceCompatibility ve onu değiştirmek 1.6 için 7 . En azından benim için çalıştı.

Ayrıca modül ayarlarınıza gidebilir ve Kaynak / Hedef Uyumluluğunu 1.7 olarak ayarlayabilirsiniz .

Modül ayarları penceresi

Bu, Gradle'ınızda aşağıdaki kodu üretecektir:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.