Uygulamamda desteklenmeyen major.minor sürüm 52.0


126

Android projemi derlemeye çalışıyorum ve bu hatayı alıyorum

[INFO] Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0
[INFO]  at java.lang.ClassLoader.defineClass1(Native Method)
[INFO]  at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
[INFO]  at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
[INFO]  at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
[INFO]  at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
[INFO]  at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
[INFO]  at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
[INFO]  at java.security.AccessController.doPrivileged(Native Method)
[INFO]  at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
[INFO]  at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
[INFO]  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
[INFO]  at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
[INFO]  at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------

Java 8 ile derlemeye çalışan başka bir gönderide okudum, bu hataya neden olabilir, ancak benim durumum değil, aşağıdaki Java sürümüne sahibim:

java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-0ubuntu0.14.04.2)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

İşletim Sistemi: Linux Mint (Bende Java 8 kurulu değil.) Yapı: MAVEN

Biri bana bu konuda yardım edebilir mi?


2
Görünüşe göre yerel jdk 7 ile java 8 derlenmiş kitaplıkları kullanıyor olabilirsiniz.
Taylor

bunu nasıl düzeltebilirim? @Taylor
Rafael Reyes

4
jdk 8'e geçin veya aşağıdakileri içeren kitaplığın daha eski bir sürümünü kullanıncom/android/dx/command/Main
Taylor

Jdk 8'e geçme iznim yok, kitaplığın com / android / dx / command / Main içeren sürümünü nasıl düşürebilirim? @Taylor
Rafael Reyes

1
Sohbeti bulunduğum yerden kullanamıyorum.
Taylor

Yanıtlar:


236

Android stüdyosundan yeni proje yaparken ben de bu problemle karşılaşıyorum.

Bunu, uygulama gradle ayarında buildToolsVersion sürümünü düşürerek çözebildim: {module-name} /build.gradle satırını değiştirin

buildToolsVersion "24.0.0 rc1"

için

buildToolsVersion "23.0.3"


@Düzenle:
Android Studio 2.1'de Dosya-> Proje Yapısı- > Uygulama -> Araç Sürümü Oluştur'a gidin. 23.0.3 olarak değiştirin

Yukarıdaki yöntemi, yalnızca java sürüm 7 kullanıyorsanız ve bazı nedenlerden dolayı henüz java 8'e yükseltmek istemiyorsanız yapın.

Bu yardımcı olur umarım


@RafaelReyes maven ile android projesi oluşturma hakkında hiçbir şey bilmiyorum. Ancak android zaten derleme araçlarını kullandığından, derleme aracı sürümünüzün maven yapılandırmasında hangi sürümü kullandığını bulamıyor musunuz?
Rudy Kurniawan

1
@RudyKurniawanHi, sanırım <version> 4.1.1.4 </version>
Rafael Reyes

2
Yeni sürüm: buildToolsVersion "23.0.3"
XurajB

1
cevabınız için teşekkürler, ama 24 derlemeye ihtiyacımız olursa ne yapmalıyız ??
shridutt kothari

2
bunun için uygulamanızı oluşturmak için java 8'i kullanmalısınız
Rudy Kurniawan

43

Gradle Scripts >> build.gradle (Modül uygulaması)

Değişim buildToolsVersion "24.0.0" için buildToolsVersion "23.0.3"

kaynak: deneyim


10
Neden bu düşürmeyi tavsiye ediyorsunuz? Bu ne işe yarıyor?
J Fabian Meier

23.0.3 neden tercih edilir?
IgorGanapolsky

31

Başlangıçta , Rudy Kurniawan'ın cevabında belirtildiği gibi buildToolsVersion' 24.0.0 rc3e 23.0.3düşürmüştüm. Sonra proje ayarlarımda jdk 7'nin belirlendiğini fark ettim. Onu jdk 8 olarak değiştirdim ve şimdi araçlar 24.0.0 rc3çalışıyorum.

görüntü açıklamasını buraya girin

Derleme seçeneklerinin şu şekilde ayarlanması da önemlidir java7:

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

Bu, AndroidStudio 2 ile ilgili sorunumu çözdü. Bir sürü garip hata alıyordum.
wmac

En yeni buildToolsVersion 25.0.1 ile Java 8 gerektirir.
IgorGanapolsky

14

Android Studio'yu Xamarin Visual Studio'nun yanına yükledim (zaten yüklendi). Kurulumdan sonra (zaten kurulu oldukları için SDK hariç tutuldu) Android Studio'yu başlattım ve eksik SDK'leri indirdim, yükledim ve ekledim (SDK konumuna giden yolu verdikten sonra). Sonuç olarak derleme sırasında hata mesajı aldım

java.lang.UnsupportedClassVersionError: com / android / dx / command / Main: Desteklenmeyen major.minor sürüm 52.0

Çözüm olarak jdk-8u101-windows-i586.exeJRE olmadan kurdum (çünkü zaten kurulu idi). X64 sürümünü denemeden önce, ancak kayboldu ... O zaman Java Geliştirme Kiti konumunu değiştirmelisiniz .

JDK konumunu değiştir

Bu, Araçlar> Seçenekler> Xamarin> Android Ayarları'na tıklanarak Visual Studio'da yapılır. Buradan doğru yere gidebilirsiniz. Benim durumumda öyleydi C:\Program Files (x86)\Java\jdk1.8.0_101.

Son olarak, projenizi temizleyin ve yeni bir yapı oluşturun :-)


"Veya AndroidSdkBuildToolsVersion MSBuild özelliğini önceki bir sürüme ayarlayın. Örneğin, 23.0.3 sürümü de yüklüyse, Android projesi .csproj dosyasındaki üst <PropertyGroup> öğesine aşağıdaki satırı ekleyebilirsiniz: <AndroidSdkBuildToolsVersion> 23.0 0,3 </ AndroidSdkBuildToolsVersion>" ref: releases.xamarin.com/...
Samis

8

Belirtilen sorun:

"Main" iş parçacığındaki istisna java.lang.UnsupportedClassVersionError: com / android / dx / command / Main: Desteklenmeyen major.minor sürüm 52.

içinde bildirilen zaman neden olur build.gradle, buildToolsVersion 24ve biz Java 8 yok mu bu sürümü için gereklidir yüklü . Bu sorunu çözmek için buildToolsVersion24'ten maksimum 23'e geçmemiz gerekiyor:

görüntü açıklamasını buraya girin

Java 8 için gelecekte gerekli olmalı Android Studio, bu yüzden Java 8 kullanmaya başlamalıyız.


6

IntelliJ Maven yapımda da aynı sorunu yaşadım. Benim "çözümüm" derleme araçlarına gitmek ve derleme araçları 24.0.0 klasörünü kaldırmaktı. Onu {android-sdk-location}/build-tools/dizinde buldum . Bu uzun vadeli bir çözüm değildir, ancak bu en azından projenizi yeniden inşa etmelidir. Birçok kişinin önerdiği gibi Java 8'e yükseltmek uzun vadede daha iyi olacaktır.


Bu gerçekten kullanabileceğim ilk seçenek çünkü Android Studio'nun kullanıcı arayüzündeki diğer yanıtlarda belirtilen ayarları bulamadım. Onu sildim ve sonra yeni bir proje oluşturdum ve işe yaradı.
Mitch

5

Ben de tutulmada yeni bir proje yaparken bu sorunla karşılaştım.

  1. Eclipse kurulum dizininizi açın
  2. Eclipse.ini dosyasını açın
  3. Değiştir

    Dosgi.requiredJavaVersion=1.6 

    için

    Dosgi.requiredJavaVersion=1.7

Bu yardımcı olur umarım


/Applications/eclipse/configuration/config.ini'ye "Dosgi.requiredJavaVersion = 1.7" satırını ekliyorum macOS Sierra'mda mükemmel çalışıyor
Bob Cheng

OP'nin sorusunun Eclipse ile ilişkili olduğunu düşündüren nedir?
IgorGanapolsky

5

Burada kimsenin söylemediği şey, Build Tools 24.0.0 ile Java 8'in gerekli olduğu ve çoğu insanın 1.6 veya 1.7'ye sahip olduğudur.

Yani evet, derleme aracını 23.xx olarak ayarlamak sorunu 'çözer' ancak asıl neden sisteminizdeki Java sürümüdür.

Uzun vadede, yeni dil geliştirmelerini ve jack derleyiciyi kullanmak için geliştirme ortamınızı JDK8 kullanacak şekilde yükseltmek isteyebilirsiniz.


5

52 , JDK 8'in kodudur. Bunu burada görebilirsiniz: http://javarevisited.blogspot.com/2015/05/fixing-unsupported-majorminor-version.html . Dolayısıyla Gradle, makinenizde JDK 8'in varsayılan Java sürümü olmasını bekliyor. Android için Gradle'ın en yeni sürümleri Java 7 ile çalışmayacaktır.

Çözüm basit: Java 8'i makinenizdeki varsayılan jdk sürümü yapın.


Biri bunu nasıl yapar ?
GuidoG

@GuidoG Özel işletim sisteminiz için kurulum talimatlarını izlemeniz gerekir. Sadece Google'da arayın ve ayrıntılı talimatları alacaksınız. Amaç, java sürümünü komut satırından çalıştırabilmek ve olarak görebilmektir 1.8.
IgorGanapolsky

4

Android Studio 2.0 kullanıyorum ve aynı sorunla karşı karşıyayım. Rudy Kurniawan tarafından sağlanan çözüm bu sorunu çözdü. Etkilenen dosyanın yeri şu şekilde bulunabilir:

"Proje" -> "Android" -> "Gradle Komut Dosyaları" -> "build.gradle (Modül: uygulama)"

Soldaki varsayılan " Proje " bölmesi. Bulmak için, yan sekmelerin adını inceleyin, tıklayın, ardından " Android " e ulaşmak için üstteki açılır kutuyu kullanın . Hedef dosyayı bulmak için bölmedeki ağacı genişletin. Düzenlemek için çift tıklayın.


Maven Build ile Intellij IDEA kullanıyorum.
Rafael Reyes

4

Geç cevap için özür dilerim, umarım başkasına yardım eder

Bu sorun, JDK'nızla değil, SDK'nızla ilgilidir. Sürüm bilgilerinizi şuradan kontrol edebilirsiniz:

Yardım> Hakkında> Ayrıntıları Göster

Gibi bir şey alacaksın

Xamarin.Android Sürümü: 6.0.2.1 (Başlangıç ​​Sürümü) Android SDK: X: \ Android \ android-sdk

Desteklenen Android sürümleri:

4.0.3 (API seviyesi 15)

4.4 (API seviyesi 19)

6.0 (API seviyesi 23)

SDK Araçları Sürümü: 24.4.1

SDK Platform Araçları Sürümü: 23.0.1

SDK Derleme Araçları Sürümü: 24 rc2

Java SDK: X: \ Program Dosyaları (x86) \ Java \ jdk1.7.0_71

java sürümü "1.7.0_71"

Java (TM) SE Çalışma Zamanı Ortamı (derleme 1.7.0_71-b14)

Java HotSpot (TM) Client VM (derleme 24.71-b01, karma mod, paylaşım)

Oluşturmak için önizleme araçlarını kullanıyorsanız, her yerde benzer hatalar alacaksınız.

Şimdi ne yapmalı?

git

Araçlar -> SDK yöneticisi

  1. Android SDK build toolsRev 24rc2veya 24rc4(en son) dahil olmak üzere önizleme kanallarındaki tüm öğeleri seçin

  2. Tıklamak Delete 'n' packages

Önizleme kanalı nasıl kapatılır

  1. SDK yöneticisinde seçin

    Araçlar> seçenekler

  2. işaretini kaldırın Enable preview tools

Ve ne

Kodunuza geri dönün Tümünü temizleyin ve yeniden oluşturun (Nadir durumlarda, proje ayarları sayfasından derleme araçları seçmeniz gerekir)


Bu benim için iyi çalıştı. ancak ondan önce jdk 8'i yükledim ve burada başka bir cevapta anlatıldığı gibi dizini değiştirdim,
Abdur Rahim

Xamarin, OP'nin sorusuyla nasıl alakalı?
IgorGanapolsky

"Veya AndroidSdkBuildToolsVersion MSBuild özelliğini önceki bir sürüme ayarlayın. Örneğin, 23.0.3 sürümü de yüklüyse, Android projesi .csproj dosyasındaki üst <PropertyGroup> öğesine aşağıdaki satırı ekleyebilirsiniz: <AndroidSdkBuildToolsVersion> 23.0 .3 </AndroidSdkBuildToolsVersion> "
samis

2

Çözüm için herkese teşekkürler.

Aynı problemimi aşağıdaki çözümü kullanarak çözebilirim.

Projeme Java8'de oluşturulan jar ekledim. Ve projem JRE 7'ye atıfta bulunuyordu. JRE projesini 8 olarak değiştirdiğimde Sorunum çözüldü.

Adımlar: Tutulmada, proje gezgini> yol oluştur> Kitaplıklar> jre sürümünde proje adına sağ tıklayın> düzenle> kurulu JRE> ekle> standart VM> JRE ana tıklama yolunu seçin (yol localePath \ java \ jdk1 olmalıdır .8.0_25 \ jre)> adı sağlayın> kaydet> proje için aynı JRE'yi seçin> bitir> ok Projeyi bir kez yenileyin / oluşturun> java dosyanızı çalıştırmayı deneyin. İşe yaramalı.


2

Bu hata mesajını travis derleme sunucusunda alıyor musunuz?

Bunu kullanarak travis yapımı buildToolsVersion "24.0.2" ile düzelttim

# travis build 
language: android

jdk:
  - oraclejdk8

android:
  components:
    - tools
    - build-tools-24.0.2
    - android-23

    - add-on
    - extra

script:
  - jdk_switcher use oraclejdk8
  - ./gradlew assemble

bu doğru. Travis yapımı düzeltmeye çalıştığımda bana yardımcı olmayan bu soruyu buldum. nasıl düzelteceğimi
öğrendikten

2

Benim durumumda varsayılan jdk 1.7 idi, ardından güncellenmiş jdk'nin bulunduğu tam klasöre göz atarak onu 1.8 olarak değiştirdim.


bu benim için çalıştı! 1.8 jdk sürümünün yüklenmiş ve hedeflenmiş olması gerekir
hewstone

1

Aynı sorunu yaşadım ve sürümü değiştirmeye çalıştım, bazen Android Studio sürümü için Project> Gradle Scripts> build.gradle (Modül: app) sürümünü değiştirebilirsiniz. Örneğin:

android {
    compileSdkVersion **23**
    buildToolsVersion **"23.0.3"**

    defaultConfig {
        applicationId "com.example.android.myapplication"
        minSdkVersion **19**
        targetSdkVersion **23**
        versionCode **1**
        versionName **"1.0"**
    }

1

Gönderen bu soruya.

Kullandığınız IDE'de derleyici düzeyinizi tekrar 1.7'ye değiştirmeyi deneyebilirsiniz.

  • Eclipse üzerindeyseniz, Windows ---> Tercihler'e gidin, ardından Java'yı seçin ve genişletin, ardından Derleyici'yi seçin ve uyumluluk düzeyini 1.7 olarak değiştirin.
  • Android Studio'daysanız, bunu build.gradle'a ekleyebilirsiniz

    android {
        compileSdkVersion 19
        buildToolsVersion "19.0.0"
    
        defaultConfig {
            minSdkVersion 7
            targetSdkVersion 19
        }
    
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_7
            targetCompatibility JavaVersion.VERSION_1_7
        }
    }

Bu yardımcı olmazsa, yukarıda belirtilen bağlantıda başkalarının yanıtını kontrol etmeyi deneyin ve size neyin yardımcı olduğunu bize bildirin.


1
Maven ve IntelliJ kullanıyorum.
Rafael Reyes

Bu durumda, kaynağı ve hedefi maven derleyici eklentisinde 1.7 dahili konfigürasyona değiştirebilirsiniz
cristianorbs

1

Android derleme araçlarınız düzgün yüklenmemiş. Derleme araçlarının başka bir sürümünü yüklemeyi deneyin ve bu sürümü gradle dosyasında verin. veya bu dizine gidebilirsiniz

C: \ Kullanıcılar \\ AppData \ Local \ Android \ sdk \ birikmesi araçları

ve hangi derleme araçlarının kurulu olduğunu görün. Gradle dosyasındaki derleme aracı sürümünü değiştirmeyi deneyin ve çalışıp çalışmadığını görmek için uygulamayı derleyin.

Derleme araçlarının 22.0.1, 23.0.02 ve 24.0.0 sürümlerine sahiptim ve yalnızca eski 22.0.1 sürümü çalışıyordu.

kaynak: kendim denedim ve benim için çalıştı.


1

Bu sorun, oluşturma aracı sürümünüz ile JDK'nın birlikte çalışmamasından kaynaklanmaktadır. JDK sürüm 7'yi 24.0.1 derleme aracıyla kullanıyordum. Elbette, derleme aracı sürümünü düşürmek sorunu çözebilir, ancak gelecekte derleme araçlarınızı yükseltmek onu tekrar bozacağından gerçek bir düzeltme değildir.

Derleme aracı sürümü ile JDK'nın birlikte çalıştığından emin olmalısınız. Derleme aracımı en son (24.0.1) sürümüne yükselttim ve jdk8'i yükledim. JAVA_HOME'unuzu en son olarak ayarladığınızdan emin olun ve ardından temiz derlemeyi deneyin.


1

Komut satırından sdk kullanarak Cordova için derleme yapmaya çalışırken Android Studio dışında aynı sorunu yaşadım (cordova build android).

Rudy tarafından sağlanan çözüm bu durumda da işe yarıyor. Derleme Araçlarının sürümünü Android Studio'dan düşürmezsiniz, ancak bunu android sdk yöneticisi kullanıcı arayüzünü kullanarak yaparsınız.


0

Bu problemle henüz karşılaştım.

SDK araçlarının "Önizleme Kanalı" sürümlerinden geri döndürülmesi ve araçların en son kararlı sürüme dönüştürülmesi sorunu çözdü.


0

Benim için düzeltmek com.android.tools.build:gradle:2.2.0-beta1için değiştiriliyor com.android.tools.build:gradle:2.1.2.

Android Studio sürümüm 2.1.2, belki de bu yüzden


0

En basit çözüm, JDK'nızı en son sürüme güncellemeniz gerektiğidir. Çünkü Cordova yalnızca en yeni JDK'yı desteklemektedir.

1 . Öncelikle Android SDK'nızı güncellemelisiniz. Sonra,

2. Terminaliniz üzerinden güncelleme yapamıyorsanız , Linux Yazılım merkezinize gidin ve En Son'u (hangisini yüklemek istediğinizi) arayın ve onu yükleyin.

Ardından, Cordova derlemesini tekrar çalıştırın .

Sorunu çözecek.

Benim durumumda işe yaradı.


0

SDK kurulum dizininize gitmeniz ve / build-tools alt dizininin buildToolsVersionuygulamanızın build.gradle dosyasındaki ile eşleştiğinden emin olmanız gerekir : görüntü açıklamasını buraya girin


0

SDK'nın en son sürümünün C:\Program Files\JavaveyaC:\Program Files (x86)\Java

Ardından VS2015'e gidin ve yol araçlarını izleyin - seçenekler - Xamarin - Android ayarları ve JDK konumu bölümünde değişikliği seçin ve x64 veya x32'ye sahip olduğunuz sürümü aramak için gidin.


0

Cordova'dayım, işte yaptığım şey:

- android projenizi yeniden adlandırın, böylece yenisi için yer açın
- JAVA Geliştirme Kitini 1.8'e güncelleyin (bunu yazarken en sonuncusu)
- çalıştırıncordova platform add android

Artık sorunsuz çalışmalı. Uygulamanızın hash değeri değişecek, bu yüzden facbeook girişi için kullanıyorsanız, güncellemeniz gerekecek


0

Bu sorunu çok uzun süredir yaşadım (SO vb. Yardımcı olmadı) ve sadece çözdüm (sdk 25 kullanarak).

-Local.properties dosyası proguard.dir var, ant ile uygulanmıyordu; 5.3.2 belirtmiştim, ancak bir komut satırı çağrısı ve imzalı dışa aktarma yapısı (tutulma), sdk dizininden 4.7 kullanıyordu (yalnızca 5+ java 8'i destekler)

Çözümüm, sdk'deki proguard jars'ı (android-sdk / tools / proguard / libs dizini) proguard'ın güncel (5+) bir sürümüyle değiştirmekti.


0

desteklenmeyen-büyük-küçük-sürüm hatası, desteklenmeyen JDK sürümünden kaynaklanıyor olabilir. JDK'yı güncelleyin, Modül Ayarlarına gidin ve JDK yolunu yenisiyle değiştirin. Çoğu durumda, hatayı düzeltir.


-1

İki java jdk sürümü yükledim. Dosya-> Proje Yapısı -> SDK Konumu kısmında java jdk'nin doğru sürümünü JAVA_HOME ortam değişkeninde sahip olduğum en son sürüme işaret ettiğimde sorun ortadan kalktı.


Bu, Gradle ile komut satırı derlemeleri sorununu mutlaka çözmez.
IgorGanapolsky
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.