在Nougat之后在Mac上构建Xamarin Android项目时出错

时间:2016-11-02 19:57:23

标签: java android xamarin compiler-errors xamarin.android

将我的项目从Android 6.0迁移到Android 7.0后,我在构建时遇到错误:

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets: Error: Tool exited with code: 10. 
Output: Error: Can't read [/Library/Frameworks/Xamarin.Android.framework/Versions/7.0.1-3/lib/xbuild-frameworks/MonoAndroid/v7.0/mono.android.jar] 
(Can't process class [android/app/ActivityTracker.class] (Unsupported class version number [52.0] (maximum 51.0, Java 1.7)))

我在网上找到的唯一解决方案是将Java升级到1.8,但当前版本是Java SE Development Kit 8u112。

有什么建议吗?

P.S。:Mac OS Sierra上的Xamarin Android Studio 6.1.1 Build 17

1 个答案:

答案 0 :(得分:0)

在Xamarin网站上,我找到了我想要的答案:

注意: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

此外,在Android设计器中使用自定义控件需要64位版本的JDK。

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

(JDK 1.8的一个不幸的复杂情况是与Android SDK中包含的过时版本的Proguard不兼容。目前,当尝试使用Proguard时,这将导致错误“不支持的类版本号[52.0]”或Xamarin.Android中的Multidex功能。请参阅44187。)

换句话说,DISABLE MULTIDEX和PROGUARD

https://developer.xamarin.com/releases/android/xamarin.android_7/xamarin.android_7.0/#Xamarin.Android_7.0.-1