【问题标题】:Error Building Xamarin Android project on Mac after Nougat [duplicate]Nougat 之后在 Mac 上构建 Xamarin Android 项目时出错 [重复]
【发布时间】:2016-11-02 19:57:23
【问题描述】:

将我的项目从 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.:Xamarin Android Studio 6.1.1 Build 17 on Mac OS Sierra

【问题讨论】:

  • 您是否将 JDK 更新到 1.8?确保同时卸载任何旧版本的 JDK 或正确设置您的 JAVA_HOME 导出。在终端中通过java -version 仔细检查当前的 java 版本

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


【解决方案1】:

在 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

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

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

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

换句话说,禁用 MULTIDEX 和 PROGUARD

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-08
  • 1970-01-01
  • 1970-01-01
  • 2023-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多