我在构建项目时遇到以下错误 . 我该如何纠正?
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 Tools版本: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,混合模式,共享)
10 回答
这里的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
此外,需要64位版本的JDK才能使用custom controls in the Android designer .
The simplest option is to install the 64-bit version of JDK 1.8 since it is backwards compatible with all of the previous API levels and supports the new Android designer features.
(与JDK 1.8的一个不幸的并发症是 not 与Android SDK中包含的Proguard的过时版本兼容 . 目前,当尝试使用Xamarin.Android中的Proguard或Multidex功能时,这将导致错误"Unsupported class version number [52.0]" . 请参阅44187 . 我建议您将此安装在Android发布的默认版本
android-sdk\tools\proguard
的旁边 . 只需将现有文件夹重命名为其他内容并添加新版本的proguard . )此错误消息是由与Java JDK不兼容引起的:Android SDK Build-tools版本24及更高版本需要Java JDK 8(1.8),而早期版本仍与Java JDK 7(1.7)兼容 . (这类似于older answers关于同样的错误 . )
Steps to update :
更新至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开发工具包位置 .
安装Android SDK Build-tools 24.0.1或更高版本 .
(可选)卸载具有a bug in aapt的旧版Android SDK Build-tools 24:
Alternatives :
如果您不想更新到Java JDK 8,则可以改为执行以下操作之一 .
通过Android SDK管理器卸载所有Android SDK Build-tools版本24及更高版本 .
或者将
AndroidSdkBuildToolsVersion
MSBuild属性设置为早期版本 . 例如,如果您还安装了版本23.0.3,则可以在Android项目.csproj
文件的顶部<PropertyGroup>
元素中添加以下行:(另见https://releases.xamarin.com/technical-bulletin-android-sdk-build-tools-24/ . )
其他背景信息
2016年7月25日更新:
谷歌现已发布Android SDK Build-tools 24.0.1 . 该版本修复了版本24中存在的bug in aapt .
2016年7月14日更新:
事实证明,此错误消息是由与Java JDK的不兼容而不是Xamarin.Android引起的:Android SDK Build-tools版本24需要Java JDK 1.8,而早期版本仍然与Java JDK 1.7兼容 . (这类似于older answers关于同样的错误 . )
2016年6月16日更新:
Android SDK Build-tools版本24的非预览版现已在Android SDK Manager中提供 . Xamarin.Android也不兼容该版本 .
2016年4月12日的信息:
“构建工具版本”看起来可能是问题所在 . Xamarin.Android尚未与Android SDK Manager中“预览 Channels ”的“24 rc2”Build-tools版本兼容 . 您可以卸载该预览版本并安装其中一个非预览版本使用Android SDK Manager的Build-tools(如23.0.3) .
解!
将Java SDK更改为1.8.x.重新启动Visual Studio后,运行“Clean Solution”,“Build”并开心!
下载最新的JDK并安装,
然后去:
VS2015工具>选项> Xamarin并将java更改为最新的JDK位置 .
Xamarin Studio:工具 - >选项 - > SDK位置
希望这可以帮助 .
正如 Brendan Zagaeski 所述,由于使用预览版本的构建工具而产生了一个问题
请按照以下步骤操作
打开SDK管理器
选择版本为24rc2的构建工具(请确保仅选择此项目)
点击卸载
UPDATE :详细答案可以在这里找到https://stackoverflow.com/a/37827161/5073734
更新2016年11月我的一些朋友告诉我,它也可以发生在nuget包中 . 如果上述方法无法解决您的问题,请尝试重新安装nuget软件包 .
确保如果在VS中,你去
项目>项目名称属性>应用程序
您已在Android SDK中下载了所有选定的版本
让's say that you have only installed the API' s用于Android 6.0(等级23)和5.1.1(等级22),但是您将最低Android设置为低于等级16的等级 . 它将给出java.lang.UnsupportedClassVersionError:错误 .
只需确保使用正确的API级别
我现在意识到这有点老了,但我也遇到了这个问题,我在网上发现的任何东西都无法解决它 . 最后,我尝试卸载并重新安装我安装的一些nuget包(SQLite.Net) . 之后编译 . 希望这对那些已经用尽这些更常见的解决方案的人有用 .
几分钟后我就遇到了同样的问题 . 确保拍摄解决方案:a)转到工具>选项> Xamarin> Android设置> Java开发工具包位置>将其更改为JDK 1.8确保指向当前的Java版本
100%工作
我遇到了同样的问题,我的系统安装了java版本1.7 . 我在系统中安装了1.8版本 .
更新了jdk工具 - >选项 - > Xamarin-> android设置 - >(java开发工具包位置)的路径设置新jdk版本的jdk路径
再次重建项目,问题解决了 .
删除版本24,下载并安装JDK 1.8_112,将Java开发工具包更改为JKD 1.8_112(现在可以在程序文件中找到而不是程序文件x86)并重建项目对我来说很有用 .