我的应用程序中不支持的major.minor版本52.0

时间:2016-03-14 15:01:18

标签: java android maven-plugin

我正在尝试编译我的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)

OS:Linux Mint (我没有安装Java 8。) 建立:MAVEN

任何人都可以帮我吗?

28 个答案:

答案 0 :(得分:237)

从android studio制作新项目时我也遇到了这个问题。

我已经能够通过在app gradle设置中降级buildToolsVersion来解决此问题: 更改{module-name} /build.gradle line

  

buildToolsVersion" 24.0.0 rc1"

  

buildToolsVersion" 23.0.3"


@Edit:
在Android Studio 2.1中转到文件 - >项目结构 - > App - >构建工具版本。将其更改为23.0.3

执行上述方法,仅当您使用的是java版本7并且由于某种原因不想升级到Java 8时。

希望这有帮助

答案 1 :(得分:43)

Gradle Scripts >> build.gradle(模块应用)

buildToolsVersion“24.0.0”更改为 buildToolsVersion“23.0.3”

来源:经验

答案 2 :(得分:31)

根据Rudy Kurniawan的回答,我最初将buildToolsVersion24.0.0 rc3降级为23.0.3。然后我注意到我的项目设置中指定了jdk 7。我已将其更改为jdk 8,现在可以构建工具24.0.0 rc3

enter image description here

将编译选项设置为java7

也很重要
android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

答案 3 :(得分:14)

我将Android Studio与Xamarin Visual Studio(已安装)一起安装。在安装之后(排除SDK,因为它们已经安装)我启动了Android Studio,它下载,安装并添加了缺少的SDK(在给出SDK位置的路径之后)。结果我收到了构建

的错误消息
  

java.lang.UnsupportedClassVersionError:com / android / dx / command / Main:不支持的major.minor版本52.0

作为一种解决方案,我在没有JRE的情况下安装了jdk-8u101-windows-i586.exe(因为它已经安装)。在我尝试x64版本之前,它已经消失了......然后你必须改变Java Development Kit location

Change JDK location

通过单击工具>在Visual Studio中完成此操作。选项> Xamarin> Android设置。在这里,您可以导航到正确的位置。就我而言,它是C:\Program Files (x86)\Java\jdk1.8.0_101

最后,清理你的项目并进行新的构建: - )

答案 4 :(得分:8)

指定的问题:

  

线程“main”中的异常java.lang.UnsupportedClassVersionError:   com / android / dx / command / Main:不支持的major.minor版本52。

build.gradlebuildToolsVersion 24内声明并且我们没有安装此版本所需的Java 8 时会导致

。要解决此问题,我们必须从buildToolsVersion从24更改为最大23:

enter image description here

Android Studio将来必须要求Java 8,因此我们必须开始使用Java 8。

答案 5 :(得分:6)

我的IntelliJ Maven构建遇到了同样的问题。我的解决方案"是进入构建工具并删除构建工具24.0.0文件夹。我在{android-sdk-location}/build-tools/目录中找到了它。这不是一个长期的修复,但这至少应该让你的项目再次建立。正如许多人所建议的那样,升级到Java 8将是更好的长期。

答案 6 :(得分:5)

52 是JDK 8的代码。您可以在此处看到:http://javarevisited.blogspot.com/2015/05/fixing-unsupported-majorminor-version.html。因此,Gradle希望您将JDK 8作为计算机上的默认Java版本。最新版本的Gradle for Android无法与Java 7配合使用。

解决方案很简单:将Java 8作为您计算机上的默认jdk版本。

答案 7 :(得分:5)

这里没有人说的是,使用Build Tools 24.0.0,Java 8是必需的,大多数人都有1.6或1.7。

所以是的,将构建工具设置为23.x.x将“解决”问题,但根本原因是系统上的Java版本。

从长远来看,您可能希望升级您的开发环境以使用JDK8来使用新的语言增强功能和插孔编译器。

答案 8 :(得分:4)

对于迟到的回复感到抱歉。希望它可以帮助其他人

此问题与您的SDK有关,而与您的JDK无关。 您可以从

中查看您的版本信息
  

帮助>关于>显示详细信息

你会得到像

这样的东西
  

Xamarin.Android版本:6.0.2.1(简化版)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 Build Tools版本:24 rc2

     

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

     

java version" 1.7.0_71"

     

Java(TM)SE运行时环境(版本1.7.0_71-b14)

     

Java HotSpot(TM)客户端VM(内置24.71-b01,混合模式,共享)

如果您使用预览工具进行构建,那么您将会遇到类似的错误。

现在该怎么办?

转到

  

工具 - > SDK管理员

  1. 选择预览渠道中的所有项目,包括Android SDK build tools与转化24rc224rc4(最新)

  2. 点击Delete 'n' packages

  3. 如何关闭预览频道

    1. 在SDK管理器中,选择

        

      工具>选项

    2. 取消选中Enable preview tools

    3. 以及

      返回您的代码清除所有重建 (在极少数情况下,您必须从项目设置页面中选择构建工具)

答案 9 :(得分:4)

在eclipse中创建一个新项目时我也遇到了这个问题。

  1. 打开您的eclipse安装目录
  2. 打开文件eclipse.ini
  3. 修改

    Dosgi.requiredJavaVersion=1.6 
    

    Dosgi.requiredJavaVersion=1.7
    
  4. 希望这有帮助

答案 10 :(得分:4)

我在Android Studio 2.0上遇到了同样的问题。 Rudy Kurniawan提供的解决方案解决了这个问题。受影响的文件可以通过以下方式找到:

"项目" - > " Android和#34; - > " Gradle Scripts" - > "的build.gradle(模块:应用)"

" 项目"窗格默认在左侧。要找到它,请检查侧面标签的名称,单击它,然后使用顶部下拉框进入" Android "。展开窗格中的树以查找目标文件。双击它进行编辑。

答案 11 :(得分:3)

在我的情况下,默认的jdk为1.7然后我通过浏览到找到更新的jdk的确切文件夹将其更改为1.8。

答案 12 :(得分:2)

感谢大家的解决方案。

我可以使用以下解决方案解决同样的问题。

在我的项目中,我添加了在Java8中创建的jar。我的项目是指JRE 7.当我将项目JRE更改为8.我的问题解决了。

步骤:在eclipse中,右键单击项目资源管理器中的项目名称>构建路径>图书馆>点击jre版本>点击编辑>已安装JRE>添加> standerd VM>选择JRE主点击路径(路径应为localePath \ java \ jdk1.8.0_25 \ jre)>提供名称>保存>为项目选择相同的JRE>完成> ok刷新/构建项目一次>尝试运行你的java文件。它应该工作。

答案 13 :(得分:2)

在travis构建服务器上获取此错误消息吗?

我修复了 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

答案 14 :(得分:1)

您的Android构建工具未正确安装。尝试安装其他版本的构建工具,并在gradle文件中提供该版本。 或者你可以去这个目录

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

并查看安装了哪些构建工具。尝试更改gradle文件中的构建工具版本并编译应用程序以查看它是否正常工作。

我有22.0.1,23.0.02和24.0.0版本的构建工具,只有旧的22.0.1版本有效。

来源:我自己尝试了,它对我有用。

答案 15 :(得分:1)

我遇到了同样的问题,并尝试更改版本,有时是针对Project>中的Android Studio版本; Gradle Scripts> build.gradle(Module:app)你可以改变版本。例如:

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

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

答案 16 :(得分:1)

这个问题源于您的构建工具版本和JDK不能一起工作的事实。我正在使用JDK版本7和构建工具24.0.1。当然,降低构建工具版本可能会解决问题,但这不是一个真正的修复,因为将来升级构建工具会再次破坏它。

您应该确保构建工具版本和JDK协同工作。我将构建工具升级到最新版本(24.0.1)并安装了jdk8。确保将JAVA_HOME设置为最新版本,然后尝试清理构建。

答案 17 :(得分:1)

在尝试使用命令行中的sdk(cordova build android)为Cordova构建时,在Android Studio之外遇到了同样的问题。

Rudy提供的解决方案也适用于此案例。你只是不要从Android Studio降级Build Tools的版本,但你使用android sdk manager ui。

答案 18 :(得分:1)

来自this问题。

您可以尝试在您正在使用的IDE中将编译器级别更改回1.7。

  • 如果您使用的是Eclipse,请转到Windows ---> Prefences然后选择Java并展开它,然后选择Compiler并将合规性级别更改为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
        }
    }
    

如果这没有帮助,请尝试查看上述链接中的其他答案,并告诉我们是什么帮助您。

答案 19 :(得分:0)

我有这个问题太久了(SO等没有帮助),只是解决了它(使用sdk 25)。

- local.properties文件proguard.dir var未应用于ant;我已经指定了5.3.2,但命令行调用和签名导出构建(eclipse)使用的是4.7,来自sdk目录(只有5+支持java 8)

我的解决方案是使用当前(5+)版本的proguard替换sdk中的proguard jar(android-sdk / tools / proguard / libs目录)。

答案 20 :(得分:0)

我在使用Cordova,这就是我所做的:

- 重命名你的android项目,以便有新的空间 - 将JAVA开发套件更新为1.8(最新编写此内容时) - 运行cordova platform add android

现在应该没有问题。你的应用程序哈希值会发生变化,所以如果你正在使用它f.e.对于facbeook登录,您需要更新它

答案 21 :(得分:0)

检查您是否在C:\Program Files\JavaC:\Program Files (x86)\Java

中安装了最新版本的SDK

然后转到VS2015并按照路径工具 - 选项 - Xamarin - Android设置,在JDK位置选择更改部分,然后去查找x64或x32版本。

答案 22 :(得分:0)

unsupported-major-minor-version错误可能是因为JDK版本不受支持。更新JDK,转到“模块设置”并将JDK路径更改为新路径。在大多数情况下,它修复了错误。

答案 23 :(得分:0)

您需要进入SDK安装目录,并确保 / build-tools 子目录与应用程序的build.gradle文件中的buildToolsVersion匹配: enter image description here

答案 24 :(得分:0)

最简单的解决方案是您必须将JDK更新为最新版本。因为Cordova仅支持最新的JDK。

1 首先,您必须更新Android SDK。然后,

2. 如果您无法通过终端进行更新,请访问Linux版本的 软件中心 并搜索最新版本(你想安装哪一个)并安装那个。

然后再次运行 Cordova build

它将解决问题。

在我的情况下,它有效。

答案 25 :(得分:0)

com.android.tools.build:gradle:2.2.0-beta1更改为com.android.tools.build:gradle:2.1.2为我修复了它。

我的Android Studio版本是2.1.2,也许这就是为什么

答案 26 :(得分:0)

我刚遇到这个问题。

从SDK工具和构建工具的“预览频道”版本恢复到最新的稳定版本修复它。

答案 27 :(得分:-1)

我安装了两个版本的java jdk。一旦我在File->项目结构中指向了正确版本的java jdk - > SDK位置到我在JAVA_HOME环境变量中的最新版本,问题就消失了。