Phiên bản Major.minor 52.0 không được hỗ trợ trong ứng dụng của tôi


126

Tôi đang cố gắng biên dịch dự án Android của mình và tôi gặp lỗi này

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

Tôi đã đọc bài đăng khác cố gắng biên dịch với Java 8 có thể gây ra lỗi đó nhưng không phải trường hợp của tôi, tôi có phiên bản Java sau:

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)

HĐH: Linux Mint (Tôi chưa cài đặt Java 8.) Build: MAVEN

Bất cứ ai có thể giúp tôi với điều này?


2
Có vẻ như bạn có thể đang sử dụng các thư viện được biên dịch java 8 với jdk cục bộ 7.
Taylor

lam sao tôi co thể sửa no? @Taylor
Rafael Reyes

4
chuyển sang jdk 8 hoặc sử dụng phiên bản cũ hơn của thư viện chứacom/android/dx/command/Main
Taylor

Tôi không được phép chuyển sang jdk 8, làm cách nào để hạ cấp phiên bản của thư viện chứa com / android / dx / lệnh / Main? @Taylor
Rafael Reyes

1
Không thể sử dụng trò chuyện từ nơi tôi đang ở.
Taylor

Câu trả lời:


236

Tôi cũng gặp phải vấn đề này khi thực hiện dự án mới từ studio android.

Tôi đã có thể giải quyết vấn đề này bằng cách hạ cấp buildToolsVersion trong cài đặt lớp ứng dụng: thay đổi dòng {tên mô-đun} /build.gradle

buildToolsVersion "24.0.0 RC1"

đến

buildToolsVersion "23.0.3"


@ Chỉnh sửa:
Trong Android Studio 2.1 Chuyển đến Tệp-> Cấu trúc dự án- > Ứng dụng -> Phiên bản công cụ xây dựng. Thay đổi nó thành 23.0.3

Thực hiện phương pháp trên, chỉ khi bạn đang sử dụng java phiên bản 7 và vì một số lý do chưa muốn nâng cấp lên java 8.

Hi vọng điêu nay co ich


@RafaelReyes Tôi không biết gì về việc xây dựng dự án Android với maven. Nhưng vì Android vẫn sử dụng các công cụ xây dựng, bạn không thể tìm thấy phiên bản nào phiên bản công cụ xây dựng của bạn được sử dụng trong cấu hình maven?
Rudy Kurniawan

1
@RudyKurniawanHi, tôi đoán là <phiên bản> 4.1.1.4 </ phiên bản>
Rafael Reyes

2
Phiên bản mới hơn: buildToolsVersion "23.0.3"
XurajB

1
Nó giúp cảm ơn cho câu trả lời, nhưng chúng ta nên làm gì nếu chúng ta cần xây dựng 24 ??
shridutt kothari

2
vì thế, bạn nên sử dụng java 8 để xây dựng ứng dụng của mình
Rudy Kurniawan

43

Tập lệnh Gradle >> build.gradle (Ứng dụng mô-đun)

Thay đổi buildToolsVersion "24.0.0" thành buildToolsVersion "23.0.3"

nguồn: kinh nghiệm


10
Tại sao bạn đề nghị hạ cấp này? Nó làm gì?
J Fabian Meier

Tại sao 23.0.3 thích hợp hơn?
IgorGanapolsky

31

Ban đầu tôi đã hạ cấp buildToolsVersiontừ 24.0.0 rc3đến 23.0.3, theo quy định trong câu trả lời Rudy Kurniawan của. Sau đó, tôi đã nhận thấy rằng tôi có jdk 7 được chỉ định trong cài đặt dự án của tôi. Tôi đã thay đổi nó thành jdk 8 và bây giờ công cụ xây dựng 24.0.0 rc3hoạt động.

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

Điều quan trọng nữa là có các tùy chọn biên dịch được đặt thành java7:

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

Điều này đã giải quyết vấn đề của tôi với AndroidStudio 2. Tôi đã nhận được một loạt các lỗi lạ.
wmac

Với buildToolsVersion 25.0.1 mới nhất , nó yêu cầu Java 8.
IgorGanapolsky

14

Tôi đã cài đặt Android Studio cùng với Xamarin Visual Studio (đã được cài đặt). Sau khi cài đặt (không bao gồm SDK, vì chúng đã được cài đặt) Tôi đã khởi động Android Studio và nó đã tải xuống, cài đặt và thêm SDK bị thiếu (sau khi đưa đường dẫn đến vị trí SDK). Kết quả là tôi đã nhận được thông báo lỗi khi xây dựng

java.lang.UnsupportedClassVersionError: com / android / dx / lệnh / Main: Không được hỗ trợ Major.minor phiên bản 52.0

Là một giải pháp tôi đã cài đặt jdk-8u101-windows-i586.exemà không có JRE (vì nó đã được cài đặt). Trước khi tôi thử phiên bản x64, nhưng nó đã biến mất ... Sau đó, bạn phải thay đổi vị trí Bộ công cụ phát triển Java .

Thay đổi vị trí JDK

Điều này được thực hiện trong Visual Studio bằng cách nhấp vào Công cụ> Tùy chọn> Xamarin> Cài đặt Android. Tại đây bạn có thể điều hướng đến vị trí chính xác. Trong trường hợp của tôi, nó đã được C:\Program Files (x86)\Java\jdk1.8.0_101.

Cuối cùng, làm sạch dự án của bạn và tạo một bản dựng mới :-)


"Hoặc đặt thuộc tính AndroidSdkBuildToolsVersion MSBuild thành phiên bản cũ hơn. Ví dụ: nếu bạn cũng đã cài đặt phiên bản 23.0.3, bạn có thể thêm dòng sau trong phần tử <Propertygroup> hàng đầu trong dự án Android .csproj: <AndroidSdkBuildToolsVersion> 23.0 .3 </ AndroidSdkBuildToolsVersion> " ref: phát
hành.xamarin.com / Giả

8

Vấn đề được chỉ định:

Ngoại lệ trong luồng "chính" java.lang.UnsupportedClassVersionError: com / android / dx / lệnh / Main: Không được hỗ trợ Major.minor phiên bản 52.

được gây ra khi được khai báo bên trong build.gradle, buildToolsVersion 24và chúng ta đừng có Java 8 được cài đặt mà là cần thiết cho phiên bản này . Để giải quyết vấn đề này, chúng tôi phải thay đổi buildToolsVersiontừ 24 đến tối đa 23:

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

Java 8 phải được yêu cầu trong tương lai Android Studio, vì vậy chúng tôi phải bắt đầu sử dụng Java 8.


6

Tôi gặp vấn đề tương tự với bản dựng IntelliJ Maven của tôi. "Giải pháp" của tôi là đi vào các công cụ xây dựng và xóa thư mục công cụ xây dựng 24.0.0. Tôi tìm thấy nó trong {android-sdk-location}/build-tools/thư mục. Đây không phải là một sửa chữa dài hạn, nhưng điều này ít nhất nên có được xây dựng dự án của bạn một lần nữa. Nâng cấp lên Java 8 như nhiều người đã đề xuất sẽ lâu dài hơn.


Đây là tùy chọn đầu tiên mà tôi thực sự có thể sử dụng, vì tôi không thể tìm thấy các cài đặt được đề cập trong các câu trả lời khác trong Giao diện người dùng của Android Studio. Tôi đã xóa nó và sau đó tạo một dự án mới và nó đã hoạt động.
Mitch

5

Tôi cũng gặp phải vấn đề này khi thực hiện một dự án mới trong nhật thực.

  1. Mở thư mục cài đặt nhật thực của bạn
  2. Mở tệp eclipse.ini
  3. Sửa đổi

    Dosgi.requiredJavaVersion=1.6 

    đến

    Dosgi.requiredJavaVersion=1.7

Hi vọng điêu nay co ich


Tôi nối dòng "Dosgi.requiredJavaVersion = 1.7" vào /Appluggest/eclipse/configuration/config.ini Hoạt động hoàn hảo trên macOS Sierra của tôi
Bob Cheng

Điều gì khiến bạn nghĩ rằng câu hỏi của OP có liên quan đến Eclipse?
IgorGanapolsky

5

Điều không ai ở đây nói là với Build Tools 24.0.0, Java 8 là bắt buộc và hầu hết mọi người đều có 1.6 hoặc 1.7.

Vì vậy, vâng, đặt công cụ xây dựng thành 23.xx sẽ 'giải quyết' vấn đề nhưng nguyên nhân gốc là phiên bản Java trên hệ thống của bạn.

Về lâu dài, bạn có thể muốn nâng cấp môi trường dev của mình để sử dụng JDK8 để sử dụng các cải tiến ngôn ngữ mới và trình biên dịch jack.


5

52 là mã cho JDK 8. Bạn có thể thấy điều đó ở đây: http://javarevisited.blogspot.com/2015/05/fixing-unsupported-majorminor-version.html . Vì vậy, Gradle đang mong đợi bạn có JDK 8 làm phiên bản Java mặc định trên máy của bạn. Các phiên bản mới nhất của Gradle cho Android sẽ không hoạt động với Java 7.

Giải pháp rất đơn giản: biến Java 8 thành phiên bản jdk mặc định trên máy của bạn.


Làm thế nào để làm điều đó ?
GuidoG

@GuidoG Bạn cần làm theo hướng dẫn cài đặt cho hệ điều hành cụ thể của mình. Chỉ cần Google nó, và bạn sẽ nhận được các hướng dẫn chi tiết. Mục tiêu là để có thể chạy java -version từ dòng lệnh và xem nó như 1.8.
IgorGanapolsky

4

Tôi đang dùng Android Studio 2.0 và gặp vấn đề tương tự. Giải pháp được cung cấp bởi Rudy Kurniawan đã giải quyết vấn đề này. Các tập tin bị ảnh hưởng có thể được định vị bởi:

"Dự án" -> "Android" -> "Tập lệnh Gradle" -> "build.gradle (Mô-đun: ứng dụng)"

Cửa sổ " Dự án " được mặc định ở bên trái. Để tìm thấy nó, hãy kiểm tra tên của các tab bên, nhấp vào nó, sau đó sử dụng hộp kéo xuống trên cùng để đến " Android ". Mở rộng cây trong khung để tìm tệp đích. Nhấp đúp vào nó để chỉnh sửa.


Tôi đang dùng Intellij IDEA với Maven Build.
Rafael Reyes

4

Xin lỗi vì đã trả lời trễ. Hy vọng nó sẽ giúp người khác

Vấn đề này liên quan đến SDK của bạn, không phải với JDK của bạn. Bạn có thể kiểm tra thông tin phiên bản của bạn từ

Trợ giúp> Giới thiệu> Hiển thị chi tiết

Bạn sẽ nhận được một cái gì đó như

Xamarin.Android Phiên bản: 6.0.2.1 (Phiên bản dành cho người mới bắt đầu) SDK Android: X: \ Android \ android-sdk

Các phiên bản Android được hỗ trợ:

4.0.3 (API cấp 15)

4.4 (API cấp 19)

6.0 (API cấp 23)

Công cụ SDK Phiên bản: 24.4.1

Công cụ nền tảng SDK Phiên bản: 23.0.1

Công cụ xây dựng SDK Phiên bản: 24 RC2

SDK Java: X: \ Tệp chương trình (x86) \ Java \ jdk1.7.0_71

phiên bản java "1.7.0_71"

Môi trường thời gian chạy Java (TM) SE (bản dựng 1.7.0_71-b14)

Máy khách Java HotSpot (TM) (bản dựng 24.71-b01, chế độ hỗn hợp, chia sẻ)

Nếu bạn đang sử dụng các công cụ xem trước để xây dựng, thì bạn sẽ gặp lỗi tương tự.

Làm gì bây giờ?

đi đến

Công cụ -> Trình quản lý SDK

  1. Chọn tất cả các mục trong các kênh xem trước bao gồm cả Android SDK build toolsrev 24rc2hoặc 24rc4(mới nhất)

  2. Bấm vào Delete 'n' packages

Cách tắt kênh xem trước

  1. Trong trình quản lý SDK, chọn

    Công cụ> tùy chọn

  2. Bỏ chọn Enable preview tools

Vậy thì sao

Quay lại mã của bạn Làm sạch tất cảxây dựng lại (Trong trường hợp hiếm hoi, bạn phải chọn công cụ xây dựng từ trang cài đặt dự án)


Điều này làm việc cho tôi tốt. nhưng trước đó tôi đã cài đặt jdk 8 và thay đổi thư mục như được mô tả trong một câu trả lời khác ở đây,
Abdur Rahim

Xamarin có liên quan như thế nào đến câu hỏi của OP?
IgorGanapolsky

"Hoặc đặt thuộc tính AndroidSdkBuildToolsVersion MSBuild thành phiên bản cũ hơn. Ví dụ: nếu bạn cũng đã cài đặt phiên bản 23.0.3, bạn có thể thêm dòng sau trong phần tử <Propertygroup> hàng đầu trong dự án Android .csproj: <AndroidSdkBuildToolsVersion> 23.0 .3 </
AndroidSdkBuildToolsVersion

2

Cảm ơn mọi người vì giải pháp.

Tôi có thể giải quyết vấn đề tương tự của tôi bằng cách sử dụng giải pháp dưới đây.

Trong dự án của tôi, tôi đã thêm jar được tạo trong Java8. Và dự án của tôi đã đề cập đến JRE 7. Khi tôi thay đổi JRE dự án thành 8. Vấn đề của tôi đã được giải quyết.

Các bước: Trong nhật thực, nhấp chuột phải vào tên dự án trong dự án thám hiểm> xây dựng đường dẫn> Thư viện> nhấp vào phiên bản jre> nhấp vào chỉnh sửa> cài đặt JRE> add> standerd VM> chọn đường dẫn nhấp chuột nhà JRE (đường dẫn phải là localePath \ java \ jdk1 .8.0_25 \ jre)> cung cấp tên> lưu> chọn cùng JRE cho dự án> kết thúc> ok Làm mới / xây dựng dự án một lần> thử chạy tệp java của bạn. nó nên hoạt động


2

Nhận thông báo lỗi này trên máy chủ travis build?

Tôi đã sửa lỗi bản dựng travis của mình với buildToolsVersion "24.0.2" bằng cách sử dụng cái này

# 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

đúng rồi. Khi tôi cố gắng sửa bản dựng travis của mình, tôi thấy câu hỏi này không giúp được gì cho tôi. sau khi tôi tìm ra cách khắc phục, tôi đã thêm cái này cho những người khác có cùng vấn đề
k3b

2

Trong trường hợp của tôi, jdk mặc định là 1.7, sau đó tôi đã thay đổi nó thành 1.8 bằng cách duyệt đến thư mục chính xác nơi tìm thấy jdk cập nhật.


Điều này làm việc cho tôi! cần phải cài đặt và nhắm mục tiêu phiên bản 1.8 jdk
hewstone

1

Tôi gặp vấn đề tương tự và đã cố gắng thay đổi phiên bản, đôi khi là phiên bản Android Studio trong Project> Gradle Sc Script> build.gradle (Module: ứng dụng) bạn có thể thay đổi phiên bản. Ví dụ:

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

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

1

Từ câu hỏi này .

Bạn có thể thử thay đổi cấp biên dịch trở lại 1.7 trong IDE bạn đang sử dụng.

  • Nếu bạn đang ở trên Eclipse, hãy truy cập Windows ---> Prefences sau đó chọn Java và mở rộng nó sau đó chọn Trình biên dịch và thay đổi mức độ tuân thủ thành 1.7.
  • Nếu bạn đang ở trên Android Studio, bạn có thể thêm phần này vào build.gradle của mình

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

Nếu điều này không có ích, hãy thử kiểm tra câu trả lời của người khác trong liên kết được đề cập ở trên và cho chúng tôi biết điều gì đã giúp bạn.


1
Tôi đang sử dụng Maven và IntelliJ.
Rafael Reyes

Trong trường hợp này, bạn có thể thay đổi nguồn và đích thành 1.7 bên trong cấu hình trên plugin trình biên dịch maven
cristianorbs

1

Các công cụ xây dựng Android của bạn không được cài đặt đúng cách. Hãy thử cài đặt một số phiên bản khác của công cụ xây dựng và cung cấp phiên bản đó trong tệp lớp. hoặc bạn có thể vào thư mục này

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

và xem công cụ xây dựng nào được cài đặt. Hãy thử thay đổi phiên bản công cụ xây dựng trong tệp lớp và biên dịch ứng dụng để xem nó có hoạt động không.

tôi đã có các phiên bản 22.0.1,23.0.02 và 24.0.0 của các công cụ xây dựng và chỉ có phiên bản 22.0.1 cũ hoạt động.

nguồn: tôi đã thử nó và nó làm việc cho tôi.


1

Vấn đề này xuất phát từ thực tế là phiên bản công cụ xây dựng của bạn và JDK sẽ không hoạt động cùng nhau. Tôi đã sử dụng JDK phiên bản 7 với công cụ xây dựng 24.0.1. Tất nhiên việc hạ thấp phiên bản công cụ xây dựng có thể khắc phục sự cố nhưng đó không phải là một sửa chữa thực sự, vì việc nâng cấp các công cụ xây dựng của bạn trong tương lai sẽ phá vỡ nó một lần nữa.

Bạn nên đảm bảo phiên bản công cụ xây dựng và JDK hoạt động cùng nhau. Tôi đã nâng cấp công cụ xây dựng của mình lên bản mới nhất (24.0.1) và cài đặt jdk8. Đảm bảo đặt JAVA_HOME của bạn thành mới nhất và sau đó thử xây dựng sạch.


1

Có cùng một vấn đề bên ngoài Android Studio, khi cố gắng xây dựng cho Cordova bằng cách sử dụng sdk từ dòng lệnh (cordova build android).

Giải pháp được cung cấp bởi Rudy cũng hoạt động trong trường hợp này. Bạn không hạ cấp phiên bản Công cụ xây dựng từ Android Studio nhưng bạn thực hiện bằng trình quản lý sdk android.


0

Tôi chỉ gặp phải vấn đề này.

Hoàn nguyên từ các phiên bản "Kênh xem trước" của các công cụ SDK và các công cụ xây dựng thành phiên bản ổn định mới nhất đã sửa nó.


0

Thay đổi com.android.tools.build:gradle:2.2.0-beta1để com.android.tools.build:gradle:2.1.2sửa nó cho tôi.

Phiên bản Android Studio của tôi là 2.1.2, có lẽ đó là lý do


0

Giải pháp đơn giản nhất là bạn phải cập nhật JDK lên phiên bản mới nhất. Bởi vì Cordova chỉ hỗ trợ JDK mới nhất.

1 . Trước hết, bạn phải cập nhật SDK Android của mình. Sau đó,

2. Nếu bạn không thể cập nhật thông qua thiết bị đầu cuối của mình, hãy đến trung tâm phần mềm Linux của bạn và tìm kiếm Bản mới nhất (cái bạn muốn cài đặt) và cài đặt cái đó.

Sau đó lại chạy Cordova build .

Nó sẽ giải quyết vấn đề.

Trong trường hợp của tôi, nó đã làm việc.


0

Bạn cần truy cập vào thư mục cài đặt SDK của mình và đảm bảo rằng thư mục con / build-tools khớp với buildToolsVersiontệp build.gradle của ứng dụng: nhập mô tả hình ảnh ở đây


0

Kiểm tra xem bạn đã cài đặt phiên bản SDK mới nhất trong một C:\Program Files\JavahoặcC:\Program Files (x86)\Java

Sau đó, truy cập VS2015 và làm theo các công cụ đường dẫn - tùy chọn - Xamarin - Cài đặt Android và trong phần Vị trí JDK chọn thay đổi và đi tìm phiên bản bạn có x64 hoặc x32.


0

Tôi đang ở trên Cordova, đây là những gì tôi đã làm:

- đổi tên dự án Android của bạn, để có không gian cho dự án mới
- cập nhật JAVA Development Kit thành 1.8 (phiên bản mới nhất trong thời điểm viết bài này)
- chạycordova platform add android

Nên làm việc mà không có vấn đề bây giờ. Băm ứng dụng của bạn sẽ thay đổi, vì vậy nếu bạn đang sử dụng nó để đăng nhập facbeook, bạn sẽ cần cập nhật nó


0

Tôi đã có vấn đề này quá lâu (SO vv đã không giúp đỡ) và chỉ giải quyết nó (sử dụng sdk 25).

-Các tập tin local.properies proguard.dir var không được áp dụng với ant; Tôi đã chỉ định 5.3.2, nhưng một lệnh gọi dòng lệnh và bản dựng xuất khẩu đã ký (nhật thực) đã sử dụng 4.7, từ thư mục sdk (chỉ có 5+ hỗ trợ java 8)

Giải pháp của tôi là thay thế các lọ proguard (thư mục android-sdk / tools / proguard / libs) trong sdk bằng phiên bản proguard (5+) hiện tại.


0

Lỗi phiên bản không được hỗ trợ chính có thể là do phiên bản JDK không được hỗ trợ. Cập nhật JDK, Chuyển đến Cài đặt mô-đun và thay đổi đường dẫn JDK sang đường dẫn mới. Trong hầu hết các trường hợp, nó sửa lỗi.


-1

Tôi đã có hai phiên bản java jdk được cài đặt. Khi tôi đã chỉ đúng phiên bản java jdk trong Tệp-> Cấu trúc dự án -> Vị trí SDK sang phiên bản mới nhất mà tôi có trong biến môi trường JAVA_HOME, vấn đề đã biến mất.


Điều này không nhất thiết phải giải quyết vấn đề cho việc xây dựng dòng lệnh với Gradle.
IgorGanapolsky
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.