Xamarin Studio 中的 java Lang UnsupportedClassVersion 错误

Posted

技术标签:

【中文标题】Xamarin Studio 中的 java Lang UnsupportedClassVersion 错误【英文标题】:java Lang UnsupportedClassVersion Error in Xamarin Studio 【发布时间】:2016-07-27 06:12:18 【问题描述】:

我在构建项目时遇到以下错误。我该如何纠正这个问题?

C:\Program Files (x86)\MSBuild\Xamarin\android\Xamarin.Android.Common.targets(3,3):错误:java.lang.UnsupportedClassVersionError:com/android/dx/command/Main:不支持major.minor 版本 52.0 (FGH)


我的版本信息来自Help > About > Show Details

Xamarin.Android 版本:6.0.2.1(简化版) Android SDK:C:\Users\Admin\AppData\Local\Android\android-sdk

支持的安卓版本:

4.0.3(API 级别 15) 4.4(API 级别 19) 6.0(API 级别 23)

SDK 工具版本:24.4.1 SDK 平台工具版本:23.0.1 SDK 构建工具版本:24 rc2

Java SDK:C:\Program Files (x86)\Java\jdk1.7.0_71 java版本“1.7.0_71” Java(TM) SE 运行时环境(构建 1.7.0_71-b14)Java HotSpot(TM) 客户端 VM(构建 24.71-b01,混合模式,共享)

【问题讨论】:

Unsupported major.minor version 52.0的可能重复 【参考方案1】:

不支持的major.minor 52.0版

此错误消息是由与 Java JDK 不兼容引起的:Android SDK Build-tools 版本 24 及更高版本需要 Java JDK 8 (1.8),而早期版本仍与 Java JDK 7 (1.7) 兼容。 (这类似于 older answers 大致相同的错误。)

更新步骤

    更新为Java JDK 8。建议使用 64 位版本以兼容 Xamarin Studio 6.1 和 Xamarin for Visual Studio 4.2 中的新 Xamarin Android 设计器功能。

    仔细检查是否在 Xamarin 首选项中选择了 Java JDK 8:

    Visual Studio工具 > 选项 > Xamarin > Android 设置 > Java 开发工具包位置

    Xamarin Studio(在 Mac 上):Xamarin Studio > 首选项 > 项目 > SDK 位置 > Android > Java SDK (JDK)

    安装 Android SDK Build-tools 24.0.1 或更高版本。

    (可选)卸载具有 a bug in aapt 的旧版 Android SDK Build-tools 24:

替代方案

如果您还不想更新到 Java JDK 8,则可以执行以下操作之一。

通过 Android SDK 管理器卸载所有 Android SDK Build-tools 版本 24 及更高版本。

或者将AndroidSdkBuildToolsVersion MSBuild 属性设置为早期版本。例如,如果您还安装了 23.0.3 版本,则可以在 Android 项目 .csproj 文件的顶部 <PropertyGroup> 元素中添加以下行:

<AndroidSdkBuildToolsVersion>23.0.3</AndroidSdkBuildToolsVersion>

(另见https://releases.xamarin.com/technical-bulletin-android-sdk-build-tools-24/。)


其他背景信息

2016 年 7 月 25 日更新:

Google 现已发布 Android SDK Build-tools 24.0.1。该版本修复了版本 24 中存在的 bug in aapt


2016 年 7 月 14 日更新:

不支持的major.minor 52.0版

事实证明,此错误消息是由与 Java JDK 而不是 Xamarin.Android 不兼容引起的:Android SDK Build-tools 版本 24 需要 Java JDK 1.8,而早期版本仍与 Java JDK 1.7 兼容。 (这类似于 older answers 大致相同的错误。)


2016 年 6 月 16 日更新:

Android SDK 构建工具版本 24 的非预览版现已在 Android SDK 管理器中提供。 Xamarin.Android 也不兼容该版本。


2016 年 4 月 12 日的信息:

SDK 构建工具版本:24 rc2

“构建工具版本”看起来可能是问题所在。 Xamarin.Android 尚不兼容 Android SDK 管理器中“预览频道”中的“24 rc2”构建工具版本。您可以使用 Android SDK 管理器卸载该预览版并安装构建工具的非预览版之一(例如 23.0.3)。

【讨论】:

谢谢!我正在从这个问题中扯出我的头发 不仅仅是Android SDK Build Tools 24 rc2。 Android SDK Build Tools 24 也是造成这种情况的原因。此外,仅删除它并重建项目并不能解决我的问题-我还必须关闭并重新打开 Xamarin Studio 并“全部清除”。 对我来说,我必须删除 (Android SDK Build Tools 24) 和 (Android SDK Build Tools 24.0.1),然后在 Visual Studio 中执行 (build -> Rebuild solution ) 设置&lt;AndroidSdkBuildToolsVersion&gt;23.0.3&lt;/AndroidSdkBuildToolsVersion&gt; 帮助了我。谢谢!!!【参考方案2】:

这里的版本 52.0 是指 JDK 的特定版本,在这种情况下与 JDK 8 相关。

Xamarin.Android 7.0 需要 JDK 1.8 使用 Android Nougat (API 24) API。您可以继续使用更早的 JDK 版本(如果针对较早的 Android API 级别):

JDK 1.8 - API 24+

JDK 1.7 - 最高 API 23

JDK 1.6 - 最高 API 20

另外,使用custom controls in the Android designer需要64位版本的JDK。

最简单的选择是安装 JDK 1.8 的 64 位版本,因为它是 向后兼容所有以前的 API 级别并支持新的 Android 设计器功能。

(JDK 1.8 的一个不幸的复杂情况是 兼容 Android SDK 中包含的Proguard 的过时版本。现在 这将导致错误“Unsupported class version number [52.0]” 尝试在 Xamarin.Android 中使用 Proguard 或 Multidex 功能。看 44187。我建议您在android-sdk\tools\proguard 中 Android 提供的默认版本旁边安装它。只需将现有文件夹重命名为其他文件夹并添加新版本的 proguard。)

【讨论】:

我查了一下,它指向正确的位置,我只安装了 JDK 7。 请您转到...帮助 > 关于 > 显示详细信息并复制 Xamarin.Android 部分的内容好吗? Xamarin.Android 版本:6.0.2.1(入门版) Android SDK:C:\Users\Admin\AppData\Local\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 Java SDK:C:\Program Files (x86)\Java\jdk1 .7.0_71 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, mixed mode, sharing) Android Designer EPL 代码在这里可用: github.com/xamarin/AndroidDesigner.EPL 感谢版本信息。构建工具版本看起来可能是问题所在:“24 rc2”。 Xamarin.Android 尚不兼容 Android SDK 管理器中“预览频道”中的构建工具版本。您可以使用 Android SDK 管理器卸载该预览版并安装构建工具的非预览版之一(例如 23.0.3)。 @BrendanZagaeski 卸载当前预览版本刚刚工作。非常感谢。【参考方案3】:

解决方案!

将 Java SDK 更改为 1.8.x。 重新启动 Visual Studio 后,运行“Clean Solution”、“Build”并开心!

【讨论】:

*第 2 步:选项... 对!图像略高,但如果您查看步骤 3 和 4 中的窗口,您将看到“选项”标题栏。感谢您的评论!【参考方案4】:

下载最新的JDK并安装,

然后转到:

VS2015 工具 > 选项 > Xamarin 并将 java 更改为最新 JDK 位置。 Xamarin Studio:工具 -> 选项 -> SDK 位置

希望这会有所帮助。

【讨论】:

解决了,谢谢,我还将 SDK 位置指向我的旧 SDK,它是 Android Studio 附带的,我在那里安装了更多工具!【参考方案5】:

正如Brendan Zagaeski所说,这是由于使用构建工具的预览版而产生的问题

请按照以下步骤操作

打开 SDK 管理器 选择 Build tools with version 24rc2(请确保只选择此项) 点击卸载

更新:详细答案可以在这里找到https://***.com/a/37827161/5073734

**2016 年 11 月更新 ** 我的一些朋友告诉我,nuget 包也可能发生这种情况。如果上述方法不能解决您的问题,请尝试重新安装 nuget 包。

【讨论】:

【参考方案6】:

确保如果在 VS 中你去 项目 > 项目名称 属性 > 应用程序 您已下载 Android SDK 中的所有选定版本

假设您只安装了适用于 Android 6.0(23 级)和 5.1.1(22 级)的 API,但是您将最低 Android 目标设置为低于该级别的级别以 16 为例。它会给出 java.lang.UnsupportedClassVersionError: 错误。

只要确保您使用正确的 API 级别

【讨论】:

【参考方案7】:

我意识到这现在有点老了,但我也遇到了这个问题,我在网上找到的任何东西都无法解决。最后我尝试卸载并重新安装我已经安装的一些 nuget 包(SQLite.Net)。之后它编译。希望这对用尽这些更常见解决方案的人有用。

【讨论】:

好吧,撞到“旧”帖子也不错。特别是如果案件尚未真正结案。添加 Android 支持库 v4 和 Google Play 服务 - 广告后,我的项目开始了。我还没有找到任何合适的解决方案【参考方案8】:

几分钟前我遇到了同样的问题。 确定射击解决方案: a) 转到工具 > 选项 > Xamarin > Android 设置 > Java 开发工具包位置 > 将其更改为 JDK 1.8 确保指向当前的 java 版本

100% 正常工作

【讨论】:

【参考方案9】:

我遇到了同样的问题,我的系统安装了 java 版本 1.7。我在系统中安装了 1.8 版本。

更新jdk工具路径->选项->Xamarin->android设置->(java开发包位置)设置jdk路径到新jdk版本

再次重建项目,问题解决。

【讨论】:

【参考方案10】:

删除版本 24,下载并安装 JDK 1.8_112,将 Java 开发工具包更改为 JKD 1.8_112(现在可以在程序文件中找到,而不是在 x86 程序文件中)并重建项目对我有用。

【讨论】:

【参考方案11】:

我已经在VS中使用了JAVA SDk1.8最新版本,仍然没有解决问题。

但我发现我可以简单地删除 Android Build Tool 28,使用一些旧版本,如 25,然后它就像一个魅力。

Do not check the build tool 28

【讨论】:

以上是关于Xamarin Studio 中的 java Lang UnsupportedClassVersion 错误的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 中的 xamarin 是不是在 xamarin.form 中提供拖放功能?

Visual Studio 2015:xamarin 中的“不支持的类版本错误”

Visual Studio 2017 中的 Xamarin (Android) 单元测试

Xamarin Studio 5.9.7(内部版本 9)和 Xamarin.iOS 9.0.1.18 中的代码设计错误

Xamarin iOS:无法对Visual Studio 2017中的控件设置约束

C# 文件(CodeBehind 类)从 Visual Studio 中的项目中消失 - Xamarin