在Xamarin Studio中的Java Lang UnsupportedClassVersion错误

我在构build项目时遇到以下错误。 我该如何纠正?

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)


我的帮助>关于>显示详细信息的版本信息:

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构build工具版本:24 rc2

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

这里的版本52.0是指JDK的特定版本,在这种情况下涉及到JDK 8。

Xamarin.Android 7.0要求JDK 1.8使用Android Nougat(API 24)API。 如果定位较早的Android API级别,则可以继续使用较早版本的JDK:

  • JDK 1.8 – 高达API 24+

  • JDK 1.7 – 直到API 23

  • JDK 1.6 – 直到API 20

另外, 在Androiddevise器中需要64位版本的JDK来使用自定义控件 。

最简单的select是安装64位版本的JDK 1.8,因为它向后兼容所有以前的API级别,并支持新的Androiddevise器function。

(JDK 1.8的一个不幸的并发症是与Android SDK中包含的过时版本的Proguard 兼容,当尝试使用Proguard或Multidexfunction时,这会导致错误“Unsupported class version number [52.0]”在Xamarin.Android中,请参阅44187 ,我build议你在android-sdk\tools\proguard的默认版本中安装这个版本,只需要把现有的文件夹重新命名为其他东西,然后添加新版本的proguard即可。 )

不受支持的major.minor版本52.0

此错误消息是由于与Java JDK不兼容导致的:Android SDK构build工具版本24和更高版本需要Java JDK 8(1.8),而早期版本仍与Java JDK 7(1.7)兼容。 (这类似于有关同样错误的旧答案 。)

步骤更新

  1. 更新到Java JDK 8 。 build议使用64位版本来兼容Xamarin Studio 6.1和Xamarin for Visual Studio 4.2中新的Xamarin Androiddevise器function。

  2. 仔细检查在Xam​​arin首选项中select了Java JDK 8:

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

      在Visual Studio中的“工具>选项> Xamarin> Android设置> Java开发工具包位置”

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

      “Xamarin Studio>首选项>项目> SDK位置> Android> Java SDK(JDK)”

  3. 安装Android SDK构build工具24.0.1或更高版本。

  4. (可选)卸载在aapt存在缺陷的旧版Android SDK构build工具24:

替代品

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

  • 通过Android SDKpipe理器卸载所有Android SDK构build工具版本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版本中存在的aapt中的错误 。


2016年7月14日更新:

不受支持的major.minor版本52.0

事实certificate,这个错误信息是由于与Java JDK不兼容导致的,而不是与Xamarin.Android:Android SDK构build工具版本24需要Java JDK 1.8,而早期版本仍然与Java JDK 1.7兼容。 (这类似于有关同样错误的旧答案 。)


2016年6月16日更新:

Android SDK Build-tools版本24的非预览版本现在可在Android SDK Manager中使用。 Xamarin.Android还不兼容该版本。


2016年4月12日信息:

SDK构build工具版本:24 rc2

“构build工具版本”看起来可能是问题。 Xamarin.Android还不兼容Android SDK Manager的“预览频道”中的“24 rc2”构build工具版本。 您可以卸载该预览版本,并使用Android SDK Manager安装构build工具的非预览版本(如23.0.3)。

解!

将Java SDK更改为1.8.x. 重新启动Visual Studio后,运行“清理解决scheme”,“build设”,并开心!

在这里输入图像描述

下载最新的JDK并安装,

然后去:

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

希望这可以帮助。

正如Brendan Zagaeski所说,由于使用预览版本的构build工具而产生了一个问题

请按照以下步骤操作

  • 打开SDKpipe理器
  • select使用版本24rc2构build工具(请确保只有这个项目被选中)
  • 点击卸载

更新 :详细的答案可以在这里findhttps://stackoverflow.com/a/37827161/5073734

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

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

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

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

我意识到现在已经有点老了,但是我也遇到了这个问题,没有任何东西可以在网上find。 最后我试着卸载并重新安装一些我已经安装的nuget软件包(SQLite.Net)。 之后,它编译。 希望这对那些已经用尽了这些更常见解决scheme的人来说是有用的。

我几分钟后面临同样的问题。 确定的解决scheme:a)转到工具>选项> Xamarin> Android设置> Java开发工具包位置>将其更改为JDK 1.8请确保您指向当前Java版本

100%的工作

我面临同样的问题,我的系统安装了Java 1.7版本。 我在系统中安装了1.8版本。

更新jdk的pathTools-> Options-> Xamarin-> android settings – >(java development kit location)设置jdkpath到新的jdk版本

再次重build项目,问题解决了。

删除版本24,下载和安装JDK 1.8_112,将Java开发工具包更改为JKD 1.8_112(现在在程序文件中find,而不是在程序文件x86中find)并重build项目对我来说是个诀窍。