내 앱에서 지원되지 않는 major.minor 버전 52.0


126

Android 프로젝트를 컴파일하려고 하는데이 오류가 발생합니다.

[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로 컴파일하려고하면 오류가 발생할 수 있지만 내 경우는 그렇지 않지만 다음 Java 버전이 있습니다.

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)

운영체제 : Linux Mint (Java 8이 설치되어 있지 않습니다.) 빌드 : MAVEN

누구든지 이것을 도울 수 있습니까?


2
로컬 jdk 7과 함께 Java 8 컴파일 라이브러리를 사용중인 것 같습니다.
Taylor

어떻게 고칠 수 있습니까? @Taylor
Rafael Reyes

4
jdk 8로 전환하거나 다음을 포함하는 이전 버전의 라이브러리를 사용하십시오com/android/dx/command/Main
Taylor

jdk 8로 전환 할 수 없습니다 .com / android / dx / command / Main을 포함하는 라이브러리 버전을 어떻게 다운 그레이드 할 수 있습니까? @Taylor
Rafael Reyes

1
내가있는 곳에서 채팅을 사용할 수 없습니다.
Taylor

답변:


236

안드로이드 스튜디오에서 새 프로젝트를 만들 때도이 문제에 직면합니다.

앱 gradle 설정에서 buildToolsVersion을 다운 그레이드 하여이 문제를 해결할 수있었습니다 : change {module-name} /build.gradle line

buildTools 버전 "24.0.0 rc1"

buildTools 버전 "23.0.3"


@ 편집 :
Android Studio 2.1의 경우 파일-> 프로젝트 구조-> 앱-> 빌드 도구 버전으로 이동하십시오. 23.0.3으로 변경

Java 버전 7을 사용 중이고 어떤 이유로 Java 8로 아직 업그레이드하지 않으려는 경우에만 위의 방법을 수행하십시오.

도움이 되었기를 바랍니다


@ RafaelReyes 나는 maven으로 안드로이드 프로젝트를 만드는 것에 대해 아무것도 모른다. 그러나 안드로이드는 빌드 도구를 사용하기 때문에 빌드 도구 버전이 maven 구성에 사용 된 버전을 찾을 수 없습니까?
Rudy Kurniawan

1
@RudyKurniawanHi, 나는 <version> 4.1.1.4 </ version>라고 생각한다
Rafael Reyes

2
최신 버전 : buildToolsVersion "23.0.3"
XurajB

1
그것은 답변에 대한 감사에 도움이되었지만 24 빌드가 필요하다면 어떻게해야합니까 ??
shridutt kothari

2
그것을 위해, 당신은 당신의 응용 프로그램 구축 자바 8을 사용한다
루디 쿠르 니아 완


31

처음에 나는 하향 조정했다 buildToolsVersion에서 24.0.0 rc323.0.3루디 쿠르 니아 완의 대답에 지정된대로. 그런 다음 프로젝트 설정에 jdk 7이 지정되어 있음을 알았습니다. jdk 8로 변경했으며 이제 도구가 24.0.0 rc3작동합니다.

여기에 이미지 설명을 입력하십시오

컴파일 옵션을 다음과 java7같이 설정하는 것도 중요합니다 .

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

이것은 AndroidStudio 2의 문제를 해결했습니다. 이상한 오류가 발생했습니다.
wmac

최신 buildToolsVersion 25.0.1 에는 Java 8이 필요합니다.
IgorGanapolsky 2016

14

Xamarin Visual Studio와 함께 Android Studio를 설치했습니다 (이미 설치되어 있음). 설치 후 (SDK가 이미 설치되어 있기 때문에 제외) SDK를 시작하고 누락 된 SDK를 다운로드, 설치 및 추가했습니다 (SDK 위치로 경로를 지정한 후). 결과적으로 빌드시 오류 메시지가 나타납니다.

java.lang.UnsupportedClassVersionError : com / android / dx / command / Main : 지원되지 않는 major.minor 버전 52.0

솔루션으로 jdk-8u101-windows-i586.exeJRE없이 설치 했습니다 (이미 설치되어 있기 때문에). x64 버전을 사용해보기 전에 사라졌지 만 ... 그런 다음 Java Development Kit 위치 를 변경해야합니다 .

JDK 위치 변경

Visual Studio에서 도구> 옵션> Xamarin> Android 설정을 클릭하면됩니다. 여기에서 올바른 위치로 이동할 수 있습니다. 내 경우에는이었다 C:\Program Files (x86)\Java\jdk1.8.0_101.

마지막으로 프로젝트를 정리하고 새 빌드를 만드십시오 :-)


"또는 AndroidSdkBuildToolsVersion MSBuild 특성을 이전 버전으로 설정하십시오. 예를 들어, 버전 23.0.3도 설치 한 경우 Android 프로젝트 .csproj 파일의 맨 위 <PropertyGroup> 요소 내에 다음 행을 추가 할 수 있습니다. <AndroidSdkBuildToolsVersion> 23.0 .3 </ AndroidSdkBuildToolsVersion> " ref : releases.xamarin.com/…
samis

8

지정된 문제 :

"main"스레드 예외 java.lang.UnsupportedClassVersionError : com / android / dx / command / Main : 지원되지 않는 major.minor 버전 52.

내에서 선언 될 때 발생합니다 build.gradle, buildToolsVersion 24우리는 자바 (8)가하지는는이 버전이 필요합니다 설치 . 이 문제를 해결하려면 buildToolsVersion24에서 최대 23 으로 변경해야합니다 .

여기에 이미지 설명을 입력하십시오

앞으로 Java 8이 필요 Android Studio하므로 Java 8 사용을 시작해야합니다.


6

IntelliJ Maven 빌드와 동일한 문제가있었습니다. 내 "솔루션"은 빌드 도구로 이동하여 빌드 도구 24.0.0 폴더를 제거하는 것이 었습니다. {android-sdk-location}/build-tools/디렉토리 에서 찾았습니다 . 이것은 장기적인 수정은 아니지만 최소한 프로젝트를 다시 빌드해야합니다. 많은 사람들이 제안한대로 Java 8로 업그레이드하는 것이 장기적으로 더 좋습니다.


이것은 Android Studio의 UI에서 다른 답변에 언급 된 설정을 찾을 수 없기 때문에 실제로 사용할 수있는 첫 번째 옵션입니다. 나는 그것을 삭제 한 다음 새로운 프로젝트를 만들었고 효과가있었습니다.
Mitch

5

또한 일식으로 새 프로젝트를 만들 때이 문제에 직면했습니다.

  1. 이클립스 설치 디렉토리를여십시오
  2. eclipse.ini 파일을여십시오
  3. 수정

    Dosgi.requiredJavaVersion=1.6 

    Dosgi.requiredJavaVersion=1.7

도움이 되었기를 바랍니다


나는 "Dosgi.requiredJavaVersion = 1.7"내 맥 OS 시에라에 완벽하게 /Applications/eclipse/configuration/config.ini 작품에 라인 추가
밥 쳉

OP의 질문이 Eclipse와 관련이 있다고 생각하는 이유는 무엇입니까?
IgorGanapolsky

5

여기서 아무도 말하지 않는 것은 Build Tools 24.0.0을 사용하면 Java 8이 필요하며 대부분의 사람들은 1.6 또는 1.7입니다.

예, 빌드 도구를 23.xx로 설정하면 문제가 '해결'되지만 근본 원인은 시스템의 Java 버전입니다.

장기적으로 JDK8을 사용하여 새로운 언어 향상 및 잭 컴파일러를 사용하도록 개발 환경을 업그레이드 할 수 있습니다.


5

52 는 JDK 8의 코드입니다. http://javarevisited.blogspot.com/2015/05/fixing-unsupported-majorminor-version.html 여기에서 볼 수 있습니다 . 따라서 Gradle은 시스템에서 JDK 8을 기본 Java 버전으로 사용할 것으로 예상합니다. Android 용 Gradle의 최신 버전은 Java 7에서 작동하지 않습니다.

해결책은 간단합니다. Java 8을 시스템의 기본 jdk 버전으로 만듭니다.


어떻게합니까?
GuidoG

@GuidoG 특정 운영 체제의 설치 지침을 따라야합니다. 그냥 구글 그것, 그리고 당신은 자세한 지침을 얻을 수 있습니다. 목표는 명령 행에서 java -version 을 실행하여로 볼 수 있도록 하는 것 1.8입니다.
IgorGanapolsky

4

나는 Android Studio 2.0을 사용하고 있으며 같은 문제에 직면하고 있습니다. Rudy Kurniawan이 제공 한 솔루션이이 문제를 정리했습니다. 영향을받는 파일은 다음 위치에서 찾을 수 있습니다.

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

" 프로젝트 "분할 창은 기본적으로 왼쪽에 있습니다. 이를 찾으려면 측면 탭의 이름을 확인하고 클릭 한 다음 상단 풀다운 상자를 사용하여 " Android "로 이동하십시오. 분할 창에서 트리를 확장하여 대상 파일을 찾으십시오. 편집하려면 두 번 클릭하십시오.


Maven Build와 함께 Intellij IDEA를 사용하고 있습니다.
Rafael Reyes

4

답장이 늦어서 죄송합니다. 다른 사람에게 도움이되기를 바랍니다.

이 문제는 JDK가 아닌 SDK와 관련이 있습니다. 당신은에서 버전 정보를 확인할 수 있습니다

도움말> 정보> 세부 정보 표시

당신은 같은 것을 얻을 것입니다

Xamarin.Android 버전 : 6.0.2.1 (Starter Edition) Android SDK : X : \ Android \ android-sdk

지원되는 Android 버전 :

4.0.3 (API 레벨 15)

4.4 (API 레벨 19)

6.0 (API 레벨 23)

SDK 도구 버전 : 24.4.1

SDK 플랫폼 도구 버전 : 23.0.1

SDK 빌드 도구 버전 : 24 rc2

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

자바 버전 "1.7.0_71"

Java (TM) SE 런타임 환경 (빌드 1.7.0_71-b14)

Java HotSpot ™ 클라이언트 VM (빌드 24.71-b01, 혼합 모드, 공유)

빌드에 미리보기 도구를 사용하는 경우 비슷한 오류가 발생합니다.

지금 무엇을해야합니까?

이동

도구-> SDK 관리자

  1. Android SDK build toolsrev 24rc2또는 24rc4(latest)를 포함 하여 미리보기 채널의 모든 항목을 선택하십시오.

  2. 클릭 Delete 'n' packages

미리보기 채널을 끄는 방법

  1. SDK 관리자에서

    도구> 옵션

  2. 체크 해제 Enable preview tools

그리고 뭐

코드로 돌아 가기 모두 정리재 구축 (드물게 프로젝트 설정 페이지에서 빌드 도구를 선택해야 함)


이것은 나를 위해 잘 작동했습니다. 그러나 그 전에 jdk 8을 설치하고 여기에 다른 답변에서 설명한 것처럼 디렉토리를 변경했습니다.
Abdur Rahim

Xamarin은 OP의 질문과 어떤 관련이 있습니까?
IgorGanapolsky

"또는 AndroidSdkBuildToolsVersion MSBuild 특성을 이전 버전으로 설정하십시오. 예를 들어, 버전 23.0.3도 설치 한 경우 Android 프로젝트 .csproj 파일의 맨 위 <PropertyGroup> 요소 내에 다음 행을 추가 할 수 있습니다. <AndroidSdkBuildToolsVersion> 23.0 .3 </ AndroidSdkBuildToolsVersion> "
samis

2

솔루션 주셔서 감사합니다.

아래 솔루션을 사용하여 동일한 문제를 해결할 수 있습니다.

내 프로젝트에서 Java8로 작성된 jar을 추가했습니다. 그리고 내 프로젝트는 JRE 7을 참조하고있었습니다. 프로젝트 JRE를 8로 변경했을 때 문제가 해결되었습니다.

단계 : 일식에서 프로젝트 탐색기에서 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭하고 빌드 경로> 라이브러리> jre 버전을 클릭> 편집> 설치된 JRE를 클릭> 추가> standerd VM> JRE 홈 클릭 경로 선택 (경로는 localePath \ java \ jdk1이어야 함) .8.0_25 \ jre)> 이름 제공> 저장> 프로젝트에 대해 동일한 JRE 선택> 완료> 프로젝트 한 번 새로 고침 / 빌드> Java 파일 실행을 시도하십시오. 작동해야합니다.


2

travis 빌드 서버에서이 오류 메시지가 표시됩니까?

이것을 사용하여 buildToolsVersion "24.0.2"로 트래비스 빌드를 수정 했습니다.

# 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

맞습니다. 내 travis 빌드를 수정하려고 할 때이 질문이 도움이되지 않는다는 것을 알았습니다. 내가 해결 방법을 발견 한 후 나는 같은 문제를 다른 사람이 추가
K3B

2

필자의 경우 기본 jdk는 1.7이고 업데이트 된 jdk가있는 정확한 폴더를 찾아 1.8로 변경했습니다.


이것은 나를 위해 일했다! 버전 1.8 jdk를 설치하고 대상으로 설정해야 함
hewstone

1

나는 같은 문제가 있었고 버전을 변경하려고했는데 때로는 프로젝트> Gradle Scripts> build.gradle (Module : app)의 Android Studio 버전에서 버전을 변경할 수 있습니다. 예를 들면 다음과 같습니다.

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

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

1

에서 질문입니다.

사용중인 IDE에서 컴파일러 수준을 1.7로 다시 변경할 수 있습니다.

  • Eclipse를 사용하는 경우 Windows ---> Prefences로 이동 한 후 Java를 선택하고 확장 한 다음 컴파일러를 선택하고 준수 레벨을 1.7로 변경하십시오.
  • Android Studio를 사용중인 경우이를 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
        }
    }

그래도 도움이되지 않으면 위에서 언급 한 링크에서 다른 사람의 답변을 확인하고 도움이 된 것을 알려주십시오.


1
Maven과 IntelliJ를 사용하고 있습니다.
Rafael Reyes

이 경우 maven 컴파일러 플러그인의 구성 내부에서 소스와 대상을 1.7로 변경할 수 있습니다.
cristianorbs

1

Android 빌드 도구가 올바르게 설치되지 않았습니다. 다른 버전의 빌드 도구를 설치하고 그 버전을 gradle 파일에 제공하십시오. 또는이 디렉토리로 이동할 수 있습니다

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

어떤 빌드 도구가 설치되어 있는지 확인하십시오. gradle 파일에서 빌드 도구 버전을 변경하고 앱이 컴파일되어 작동하는지 확인하십시오.

22.0.1,23.0.02 및 24.0.0 버전의 빌드 도구가 있었고 이전 22.0.1 버전 만 작동했습니다.

출처 : 나는 그것을 직접 시도하고 나를 위해 일했다.


1

이 문제는 빌드 도구 버전과 JDK가 함께 작동하지 않기 때문에 발생합니다. 빌드 도구 24.0.1과 함께 JDK 버전 7을 사용하고있었습니다. 물론 빌드 도구 버전을 낮추면 문제를 해결할 수 있지만 나중에 빌드 도구를 업그레이드하면 문제가 다시 해결되므로 실제 수정이 아닙니다.

빌드 도구 버전과 JDK가 함께 작동하는지 확인해야합니다. 빌드 도구를 최신 (24.0.1)으로 업그레이드하고 jdk8을 설치했습니다. JAVA_HOME을 최신으로 설정하고 깨끗한 빌드를 시도하십시오.


1

커맨드 라인에서 sdk (cordova build android)를 사용하여 Cordova를 빌드하려고 할 때 Android Studio 외부에서 동일한 문제가 발생했습니다.

이 경우에도 Rudy가 제공하는 솔루션이 작동합니다. Android Studio에서 Build Tools 버전을 다운 그레이드하지는 않지만 android sdk manager ui를 사용하여 수행합니다.


0

방금이 문제가 발생했습니다.

SDK 도구의 "미리보기 채널"버전에서 최신 안정 버전으로 도구를 빌드하고 수정했습니다.


0

나를 com.android.tools.build:gradle:2.2.0-beta1위해 com.android.tools.build:gradle:2.1.2수정하기로 변경 했습니다.

내 Android Studio 버전은 2.1.2이므로 아마도


0

가장 간단한 해결책은 JDK를 최신 버전으로 업데이트해야한다는 것입니다. Cordova는 최신 JDK 만 지원하기 때문입니다.

1 . 우선 Android SDK를 업데이트해야합니다. 그때,

2. 터미널을 통해 업데이트 할 수없는 경우 Linux destro 의 소프트웨어 센터 로 이동하여 최신 버전 (설치하려는 시스템)을 검색하여 설치하십시오.

그런 다음 Cordova build를 다시 실행하십시오 .

문제를 해결할 것입니다.

내 경우에는 효과가있었습니다.


0

SDK 설치 디렉토리로 이동하여 / build-tools 하위 디렉토리가 buildToolsVersion앱의 build.gradle 파일 과 일치 하는지 확인하십시오 . 여기에 이미지 설명을 입력하십시오


0

최신 버전의 SDK가 설치되어 있는지 확인하십시오. C:\Program Files\Java 하거나C:\Program Files (x86)\Java

그런 다음 VS2015로 이동하여 경로 도구-옵션-Xamarin-Android 설정을 따르고 JDK 위치 섹션에서 변경을 선택하고 x64 또는 x32가있는 버전을 찾으십시오.


0

나는 코르도바에 있는데, 내가 한 일이 있습니다.

-새로운 프로젝트를위한 공간이 있도록 안드로이드 프로젝트의 이름을 바꿉니다
-JAVA Development Kit를 1.8로 업데이트하십시오 (이 글을 쓰는 시점에서 최신 버전으로 업데이트하십시오)
-실행cordova platform add android

지금 문제없이 작동합니다. 앱 해시가 변경되므로 facbeook 로그인에 fe를 사용하는 경우 업데이트해야합니다.


0

나는이 문제를 너무 오랫동안 가지고 있었고 (SO 등은 도움이되지 않았다) 단지 (sdk 25를 사용하여) 해결했다.

-local.properties 파일 proguard.dir var가 ant와 함께 적용되지 않았습니다. 5.3.2를 지정했지만 sdk dir에서 명령 줄 호출 및 서명 된 내보내기 빌드 (Eclipse)가 4.7을 사용하고 있습니다 (5 이상 만 java 8을 지원합니다)

내 솔루션은 sdk의 proguard jar (android-sdk / tools / proguard / libs 디렉토리)를 현재 (5+) 버전의 proguard로 바꾸는 것입니다.


0

지원되지 않는 주요 부 버전 오류는 지원되지 않는 JDK 버전으로 인해 발생할 수 있습니다. JDK를 업데이트하고 모듈 설정으로 이동하여 JDK 경로를 새 경로로 변경하십시오. 대부분의 경우 오류를 수정합니다.


-1

두 가지 버전의 Java jdk가 설치되어 있습니다. 파일-> 프로젝트 구조-> SDK 위치에서 Java jdk의 올바른 버전을 JAVA_HOME 환경 변수에있는 최신 버전으로 가리키면 문제가 사라졌습니다.


그래도 Gradle을 사용한 명령 줄 빌드 문제를 해결할 필요는 없습니다.
IgorGanapolsky
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.