在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)兼容。 (这类似于有关同样错误的旧答案 。)
步骤更新 :
-
更新到Java JDK 8 。 build议使用64位版本来兼容Xamarin Studio 6.1和Xamarin for Visual Studio 4.2中新的Xamarin Androiddevise器function。
-
仔细检查在Xamarin首选项中select了Java JDK 8:
-
Visual Studio : 工具>选项> Xamarin> Android设置> Java开发工具包位置 。
-
Xamarin Studio (在Mac上): Xamarin Studio>首选项>项目> SDK位置> Android> Java SDK(JDK) 。
-
-
安装Android SDK构build工具24.0.1或更高版本。
-
(可选)卸载在
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项目对我来说是个诀窍。