Versi major.minor 52.0 tidak didukung di aplikasi saya

126

Saya mencoba mengkompilasi proyek Android saya dan saya mendapatkan kesalahan ini

[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] ------------------------------------------------------------------------

Saya telah membaca di posting lain yang mencoba untuk mengkompilasi dengan Java 8 mungkin menyebabkan kesalahan itu tetapi tidak pada kasus saya, saya memiliki versi Java berikut:

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)

OS: Linux Mint (Saya belum menginstal Java 8.) Build: MAVEN

Adakah yang bisa membantu saya dengan ini?

Rafael Reyes
sumber
2
Sepertinya Anda mungkin menggunakan perpustakaan yang dikompilasi java 8 dengan jdk lokal 7.
Taylor
bagaimana saya bisa memperbaikinya? @Aylor
Rafael Reyes
4
beralih ke jdk 8, atau gunakan versi perpustakaan yang lebih lama yang berisicom/android/dx/command/Main
Taylor
Saya tidak diizinkan untuk beralih ke jdk 8, bagaimana bisa menurunkan versi perpustakaan yang berisi com / android / dx / command / Main? @Taylor
Rafael Reyes
1
Tidak dapat menggunakan obrolan dari tempat saya berada.
Taylor

Jawaban:

236

Saya menghadapi masalah ini juga ketika membuat proyek baru dari android studio.

Saya sudah bisa menyelesaikan ini dengan menurunkan versi buildToolsVersion dalam pengaturan gradle aplikasi: ubah {module-name} /build.gradle line

buildToolsVersion "24.0.0 rc1"

untuk

buildToolsVersion "23.0.3"


@ Edit:
Di Android Studio 2.1 Buka File-> Struktur Proyek- > Aplikasi -> Versi Alat Bangun. Ubah ke 23.0.3

Lakukan metode di atas, hanya ketika Anda menggunakan java versi 7 dan karena alasan tertentu belum ingin memutakhirkan ke java 8.

Semoga ini membantu

Rudy Kurniawan
sumber
@ RafaelReyes Saya tidak tahu apa-apa tentang membangun proyek android dengan pakar. Tetapi karena Android tetap menggunakan alat bangun, tidak bisakah Anda menemukan versi versi alat bangun yang Anda gunakan dalam konfigurasi pakar?
Rudy Kurniawan
1
@RudyKurniawanHi, saya kira <version> 4.1.1.4 </version>
Rafael Reyes
2
Versi yang lebih baru: buildToolsVersion "23.0.3"
XurajB
1
itu membantu terima kasih atas jawabannya, tetapi apa yang harus kita lakukan jika kita perlu membangun 24 ??
shridutt kothari
2
untuk itu, Anda harus menggunakan java 8 untuk membangun aplikasi Anda
Rudy Kurniawan
43

Script Gradle >> build.gradle (aplikasi Modul)

Ubah buildToolsVersion "24.0.0" menjadi buildToolsVersion "23.0.3"

sumber: pengalaman

Febrianto Nugroho
sumber
10
Mengapa Anda merekomendasikan downgrade ini? Apa fungsinya?
J Fabian Meier
Mengapa 23.0.3 lebih disukai?
IgorGanapolsky
31

Awalnya saya diturunkan buildToolsVersiondari 24.0.0 rc3menjadi 23.0.3, seperti yang ditentukan dalam jawaban Rudy Kurniawan. Kemudian saya perhatikan bahwa saya memiliki jdk 7 yang ditentukan dalam pengaturan proyek saya. Saya telah mengubahnya ke jdk 8 dan sekarang membangun alat 24.0.0 rc3berfungsi.

masukkan deskripsi gambar di sini

Penting juga untuk mengatur opsi kompilasi menjadi java7:

android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}
Denis Kniazhev
sumber
Ini memecahkan masalah saya dengan AndroidStudio 2. Saya menerima banyak kesalahan aneh.
wmac
Dengan buildToolsVersion 25.0.1 terbaru , ia membutuhkan Java 8.
IgorGanapolsky
14

Saya menginstal Android Studio bersama dengan Xamarin Visual Studio (sudah diinstal). Setelah instalasi (tidak termasuk SDK, karena sudah terpasang) Saya memulai Android Studio dan mengunduh, menginstal dan menambahkan SDK yang hilang (setelah memberikan jalur ke lokasi SDK). Akibatnya saya mendapat pesan kesalahan saat dibuat

java.lang.UnsupportedClassVersionError: com / android / dx / command / Utama: Tidak didukung major.minor versi 52.0

Sebagai solusi saya menginstal jdk-8u101-windows-i586.exetanpa JRE (karena sudah diinstal). Sebelum saya mencoba versi x64, tetapi menghilang ... Maka Anda harus mengubah lokasi Java Development Kit .

Ubah lokasi JDK

Ini dilakukan di Visual Studio dengan mengklik Alat> Opsi> Xamarin> Pengaturan Android. Di sini Anda dapat menavigasi ke lokasi yang benar. Dalam kasus saya itu C:\Program Files (x86)\Java\jdk1.8.0_101.

Terakhir, bersihkan proyek Anda dan buat bangunan baru :-)

pengujian
sumber
"Atau atur properti MSBuild AndroidSdkBuildToolsVersion ke versi yang lebih lama. Misalnya, jika Anda juga memiliki versi 23.0.3 yang diinstal, Anda bisa menambahkan baris berikut di dalam elemen <PropertyGroup> dalam proyek Android. File file: <AndroidSdkBuildToolsVersion> 23.0 .3 </AndroidSdkBuildToolsVersion> " ref: releases.xamarin.com/…
samis
8

Masalah yang ditentukan:

Pengecualian di utas "main" java.lang.UnsupportedClassVersionError: com / android / dx / command / Main: Main.minor versi 52. tidak didukung.

disebabkan ketika dideklarasikan di dalam build.gradle, buildToolsVersion 24dan kami tidak menginstal Java 8 yang diperlukan untuk versi ini . Untuk mengatasi masalah ini, kita harus mengubah buildToolsVersiondari 24 ke maksimum 23:

masukkan deskripsi gambar di sini

Java 8 harus diminta di masa depan Android Studio, jadi kita harus mulai menggunakan Java 8.

Jorgesys
sumber
6

Saya memiliki masalah yang sama dengan build IntelliJ Maven saya. "Solusi" saya adalah masuk ke alat build dan menghapus folder build tools 24.0.0. Saya menemukannya di {android-sdk-location}/build-tools/direktori. Ini bukan perbaikan jangka panjang, tapi ini setidaknya harus membangun kembali proyek Anda. Upgrade ke Java 8 seperti yang banyak disarankan akan menjadi jangka panjang yang lebih baik.

sotrh
sumber
Ini adalah opsi pertama yang sebenarnya bisa saya gunakan, karena saya tidak dapat menemukan pengaturan yang disebutkan dalam jawaban lain di UI Android Studio. Saya menghapusnya dan kemudian membuat proyek baru dan berhasil.
Mitch
5

Saya juga menghadapi masalah ini ketika membuat proyek baru di gerhana.

  1. Buka direktori pemasangan gerhana Anda
  2. Buka file eclipse.ini
  3. Memodifikasi

    Dosgi.requiredJavaVersion=1.6 

    untuk

    Dosgi.requiredJavaVersion=1.7

Semoga ini membantu

pengguna6661437
sumber
Saya menambahkan baris "Dosgi.requiredJavaVersion = 1.7" ke /Applications/eclipse/configuration/config.ini Berfungsi sempurna di MacOS saya Sierra
Bob Cheng
Apa yang membuat Anda berpikir pertanyaan OP dikaitkan dengan Eclipse?
IgorGanapolsky
5

Apa yang tidak dikatakan orang di sini adalah bahwa dengan Build Tools 24.0.0, Java 8 diperlukan dan sebagian besar orang memiliki 1,6 atau 1,7.

Jadi ya, pengaturan alat build ke 23.xx akan 'menyelesaikan' masalah tetapi akar penyebabnya adalah versi Java pada sistem Anda.

Dalam jangka panjang, Anda mungkin ingin meningkatkan lingkungan dev Anda menggunakan JDK8 untuk memanfaatkan peningkatan bahasa baru dan kompiler jack.

Jay Sidri
sumber
5

52 adalah kode untuk JDK 8. Anda dapat melihatnya di sini: http://javarevisited.blogspot.com/2015/05/fixing-unsupported-majorminor-version.html . Jadi Gradle mengharapkan Anda untuk memiliki JDK 8 sebagai versi Java default pada mesin Anda. Versi terbaru Gradle untuk Android tidak akan berfungsi dengan Java 7.

Solusinya sederhana: jadikan Java 8 versi default jdk pada mesin Anda.

IgorGanapolsky
sumber
Bagaimana seseorang melakukan itu ?
GuidoG
@GuidoG Anda harus mengikuti instruksi instalasi untuk sistem operasi spesifik Anda. Hanya Google itu, dan Anda akan mendapatkan instruksi rinci. Tujuannya adalah untuk dapat menjalankan java -versi dari commandline dan melihatnya sebagai 1.8.
IgorGanapolsky
4

Saya menggunakan Android Studio 2.0 dan menghadapi masalah yang sama. Solusi yang diberikan oleh Rudy Kurniawan menyelesaikan masalah ini. File yang terpengaruh dapat ditemukan oleh:

"Project" -> "Android" -> "Script Gradle" -> "build.gradle (Module: app)"

Panel " Project " adalah default di sebelah kiri. Untuk menemukannya, periksa nama tab sisi, klik, lalu gunakan kotak tarik ke bawah untuk mendapatkan " Android ". Rentangkan pohon di panel untuk menemukan file target. Klik dua kali untuk mengedit.

coarist
sumber
Saya menggunakan Intellij IDEA dengan Maven Build.
Rafael Reyes
4

Maaf atas jawaban yang terlambat. Semoga ini bisa membantu orang lain

Masalah ini terkait dengan SDK Anda, bukan dengan JDK Anda. Anda dapat memeriksa informasi versi Anda dari

Bantuan> Tentang> Tampilkan Detail

Anda akan mendapatkan sesuatu seperti

Xamarin. Versi Android: 6.0.2.1 (Edisi Pemula) Android SDK: X: \ Android \ android-sdk

Versi Android yang didukung:

4.0.3 (API level 15)

4.4 (API level 19)

6.0 (API level 23)

Versi Alat SDK: 24.4.1

Versi Alat Platform SDK: 23.0.1

Versi SDK Build Tools: 24 rc2

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

versi java "1.7.0_71"

Java (TM) SE Runtime Environment (build 1.7.0_71-b14)

Java HotSpot (TM) Client VM (build 24.71-b01, mode campuran, berbagi)

Jika Anda menggunakan alat pratinjau untuk membangun, maka Anda akan mendapatkan kesalahan serupa di seluruh.

Apa yang harus dilakukan sekarang?

pergi ke

Alat -> manajer SDK

  1. Pilih semua item di saluran pratinjau termasuk Android SDK build toolsdengan rev 24rc2atau 24rc4(terbaru)

  2. Klik Delete 'n' packages

Cara mematikan saluran pratinjau

  1. Di manajer SDK, pilih

    Alat> opsi

  2. Hapus centang Enable preview tools

Dan apa

Kembali ke kode Anda Bersihkan semua dan bangun kembali (Dalam kasus yang jarang terjadi, Anda harus memilih alat bantu dari halaman pengaturan proyek)

Habel Philip
sumber
Ini bekerja dengan baik untuk saya. tetapi sebelum itu saya menginstal jdk 8 dan mengubah direktori seperti yang dijelaskan dalam jawaban lain di sini,
Abdur Rahim
Bagaimana Xamarin relevan dengan pertanyaan OP?
IgorGanapolsky
"Atau atur properti MSBuild AndroidSdkBuildToolsVersion ke versi yang lebih lama. Misalnya, jika Anda juga memiliki versi 23.0.3 yang diinstal, Anda bisa menambahkan baris berikut di dalam elemen <PropertyGroup> dalam proyek Android. File file: <AndroidSdkBuildToolsVersion> 23.0 .3 </AndroidSdkBuildToolsVersion> "
samis
2

Terima kasih semuanya atas solusinya.

Saya dapat memecahkan masalah yang sama dengan menggunakan solusi di bawah ini.

Dalam proyek saya, saya menambahkan toples yang dibuat di Java8. Dan proyek saya mengacu pada JRE 7. Ketika saya mengubah proyek JRE ke 8. Masalah saya terpecahkan.

Langkah-langkah: Dalam gerhana, klik kanan pada nama proyek di penjelajah proyek> membangun jalur> Perpustakaan> klik pada versi jre> klik edit> JRE terinstal> tambah> standerd VM> pilih jalur-klik JRE rumah (jalur harus localePath \ java \ jdk1 .8.0_25 \ jre)> berikan nama> simpan> pilih JRE yang sama untuk proyek> selesai> ok Segarkan / bangun proyek sekali> coba jalankan file java Anda. itu harus bekerja.

haithem
sumber
2

Dapatkan pesan kesalahan ini di travis build server?

Saya memperbaiki build travis saya dengan buildToolsVersion "24.0.2" menggunakan ini

# 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
k3b
sumber
itu benar. ketika saya mencoba untuk memperbaiki membangun travis saya, saya menemukan pertanyaan ini yang tidak membantu saya. setelah saya mengetahui bagaimana cara memperbaikinya saya menambahkan ini ke orang lain dengan masalah yang sama
k3b
2

Dalam kasus saya, jdk default adalah 1,7 kemudian saya mengubahnya menjadi 1,8 dengan menelusuri ke folder yang tepat di mana jdk diperbarui ditemukan di.

Hedego
sumber
ini berhasil untuk saya! harus memiliki versi 1.8 jdk diinstal dan ditargetkan
hewstone
1

Saya memiliki masalah yang sama dan mencoba untuk mengubah versi, kadang-kadang untuk versi Android Studio di Project> Gradle Scripts> build.gradle (Module: app) Anda dapat mengubah versi. Sebagai contoh:

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

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

Dari pertanyaan ini .

Anda dapat mencoba mengubah tingkat kompiler Anda kembali ke 1,7 di IDE yang Anda gunakan.

  • Jika Anda menggunakan Eclipse, buka Windows ---> Prefences lalu pilih Java dan perluas lalu pilih Compiler dan ubah level kepatuhan menjadi 1.7.
  • Jika Anda menggunakan Android Studio, Anda dapat menambahkan ini ke build.gradle Anda

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

Jika ini tidak membantu, coba periksa jawaban orang lain di tautan yang disebutkan di atas dan beri tahu kami apa yang membantu Anda.

cristianorbs
sumber
1
Saya menggunakan Maven dan IntelliJ.
Rafael Reyes
Dalam hal ini Anda dapat mengubah sumber dan menargetkan ke konfigurasi di dalam 1,7 pada plugin compiler maven
cristianorbs
1

Perangkat Android build Anda tidak terpasang dengan benar. Coba instal beberapa versi alat bangun lain dan berikan versi itu di file gradle. atau Anda dapat pergi ke direktori ini

C: \ Users \\ AppData \ Local \ Android \ sdk \ build-tools

dan lihat alat bangun mana yang diinstal. Coba ubah versi alat bangun dalam file gradle dan kompilasi aplikasi untuk melihat apakah itu berfungsi.

saya punya versi 22.0.1,23.0.02 dan 24.0.0 alat bantu bangun dan hanya versi lama 22.0.1 yang berfungsi.

sumber: saya mencobanya sendiri dan itu berhasil untuk saya.

Swathin
sumber
1

Masalah ini berasal dari fakta bahwa versi alat bangun Anda dan JDK tidak akan bekerja bersama. Saya menggunakan JDK versi 7 dengan build tool 24.0.1. Tentu saja menurunkan versi alat build dapat memperbaiki masalah tetapi itu bukan perbaikan nyata, karena meningkatkan alat membangun Anda di masa depan akan memecahkannya lagi.

Anda harus memastikan versi alat build dan JDK bekerja bersama. Saya memutakhirkan alat membangun saya ke terbaru (24.0.1) dan menginstal jdk8. Pastikan untuk mengatur JAVA_HOME Anda menjadi yang terbaru dan kemudian coba bersihkan bangunan.

GodOnScooter
sumber
1

Mendapat masalah yang sama di luar Android Studio, ketika mencoba membangun untuk Cordova menggunakan sdk dari baris perintah (cordova build android).

Solusi yang diberikan oleh Rudy juga berfungsi dalam hal ini. Anda hanya tidak menurunkan versi Build Tools dari Android Studio tetapi Anda melakukannya dengan menggunakan Android SDK Manager ui.

Andrea Gherardi
sumber
0

Saya baru saja mengalami masalah ini.

Mengembalikan dari versi "Saluran Pratinjau" dari alat SDK dan membangun alat ke versi stabil terbaru memperbaikinya.

Mike Playle
sumber
0

Mengubah com.android.tools.build:gradle:2.2.0-beta1untuk com.android.tools.build:gradle:2.1.2memperbaikinya untuk saya.

Versi Android Studio saya adalah 2.1.2, mungkin itu sebabnya

ericn
sumber
0

Solusi paling sederhana adalah Anda harus memperbarui JDK Anda ke versi terbaru. Karena Cordova hanya mendukung JDK terbaru.

1 . Pertama-tama Anda harus memperbarui Android SDK Anda. Kemudian,

2. Jika Anda tidak dapat memperbarui melalui terminal Anda, Masuklah ke pusat Perangkat Lunak Destro Linux Anda dan cari yang Terbaru (mana yang ingin Anda instal) dan instal yang itu.

Kemudian jalankan lagi Cordova build .

Itu akan memecahkan masalah.

Dalam, kasus saya berhasil.

PyDevSRS
sumber
0

Anda harus masuk ke direktori instalasi SDK Anda, dan pastikan bahwa sub-direktori / build-tools cocok dengan buildToolsVersiondi file build.gradle aplikasi Anda: masukkan deskripsi gambar di sini

IgorGanapolsky
sumber
0

Periksa apakah Anda memiliki versi terbaru SDK yang diinstal pada C:\Program Files\JavaatauC:\Program Files (x86)\Java

Lalu pergi ke VS2015 dan ikuti alat path - opsi - Xamarin - Pengaturan Android dan di bagian lokasi JDK pilih perubahan dan pergi untuk mencari versi yang Anda miliki baik x64 atau x32.

genom
sumber
0

Saya menggunakan cordova, inilah yang saya lakukan:

- ganti nama proyek android Anda, sehingga ada ruang untuk yang baru
- perbarui JAVA Development Kit ke 1.8 (yang terbaru saat penulisan ini)
- jalankancordova platform add android

Seharusnya bekerja tanpa masalah sekarang. Hash aplikasi Anda akan berubah, jadi jika Anda menggunakannya untuk login facbeook, Anda harus memperbaruinya

mate.gwozdz
sumber
0

Saya punya masalah ini terlalu lama (SO dll tidak membantu) dan baru saja menyelesaikannya (menggunakan SDK 25).

-The local.properties file proguard.dir var tidak berlaku dengan semut; Saya telah menentukan 5.3.2, tetapi panggilan baris perintah dan ekspor yang ditandatangani (gerhana) menggunakan 4.7, dari dir SDK (hanya 5+ mendukung java 8)

Solusi saya adalah mengganti guci proguard (direktori android-sdk / tools / proguard / libs) di SDK dengan versi proguard saat ini (5+).

rndStr
sumber
0

kesalahan versi major-minor-tidak didukung dapat karena versi JDK tidak didukung. Perbarui JDK, Buka Pengaturan Modul dan ubah jalur JDK ke yang baru. Dalam sebagian besar kasus, ini memperbaiki kesalahan.

Rachit Murarka
sumber
-1

Saya memiliki dua versi java jdk diinstal. Setelah saya menunjuk ke versi java jdk yang tepat di File-> Project Structure -> SDK Location ke versi terbaru yang saya miliki dalam variabel lingkungan JAVA_HOME, masalah itu hilang.

Thambu Zk
sumber
Ini tidak serta merta menyelesaikan masalah pembangunan baris perintah dengan Gradle.
IgorGanapolsky