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

Raf*_*yes 127 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] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我一直在阅读其他帖子,尝试使用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)
Run Code Online (Sandbox Code Playgroud)

操作系统:Linux Mint(我没有安装Java 8.)Build:MAVEN

谁能帮我这个?

Rud*_*wan 236

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

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

buildToolsVersion"24.0.0 rc1"

buildToolsVersion"23.0.3"


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

上面的方法,只有当你使用java版本7时,由于某种原因不想升级到java 8.

希望这可以帮助

  • 我正在使用Maven (2认同)
  • 较新版本:buildToolsVersion"23.0.3" (2认同)
  • 为此,您应该使用java 8来构建您的应用程序 (2认同)

小智 43

Gradle脚本 >> build.gradle(模块应用)

buildToolsVersion"24.0.0"更改为buildToolsVersion"23.0.3"

来源:经验

  • 为什么推荐这种降级?它有什么作用? (10认同)

Den*_*hev 31

最初,我曾降级buildToolsVersion24.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
    }
}
Run Code Online (Sandbox Code Playgroud)


tes*_*ing 14

我安装了Android Studio和Xamarin Visual Studio(已安装).在安装之后(排除SDK,因为它们已经安装)我启动了Android Studio,它下载,安装并添加了缺少的SDK(在给出SDK位置的路径之后).结果我在构建时收到了错误消息

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

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

更改JDK位置

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

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


Jor*_*sys 8

指定的问题:

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

是在声明内部时引起的build.gradle,buildToolsVersion 24我们没有安装此版本所需的Java 8.要解决这个问题,我们必须buildToolsVersion从24变为最大23:

在此输入图像描述

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


sot*_*trh 6

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


小智 5

在Eclipse中制作新项目时,我也遇到了这个问题。

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

    Dosgi.requiredJavaVersion=1.6 
    
    Run Code Online (Sandbox Code Playgroud)

    Dosgi.requiredJavaVersion=1.7
    
    Run Code Online (Sandbox Code Playgroud)

希望这可以帮助


Jay*_*dri 5

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

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

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


Igo*_*sky 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版本.