构建xamarin android项目不成功,错误XA4212
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构建xamarin android项目不成功,错误XA4212相关的知识,希望对你有一定的参考价值。
在Visual Studio 2017 15.4中,一切都很顺利。但是在我升级到15.5之后,我的xamarin android项目无法成功构建,显示:
error XA4212: Type `Android.Support.V4.App.JobIntentService/JobServiceEngineImpl` implements `Android.Runtime.IJavaObject` but does not inherit `Java.Lang.Object` or `Java.Lang.Throwable`. This is not supported.
在@Ironman回答之后,这发生在Xamarin.Android 8.0中,所以我在下一节的项目.csproj文件中将属性设置为false。
<PropertyGroup>
<!-- Other properties -->
<AndroidErrorOnCustomJavaObject>false</AndroidErrorOnCustomJavaObject>
</PropertyGroup>
在大多数情况下,您应该添加属性,因为默认情况下它不存在。
现在,您可以正常构建和运行应用程序,只有警告。
请注意.csproj文件中的其他PropertyGroup标记,这些标记特定于构建条件。
您可以在https://github.com/xamarin/xamarin-android/blob/master/Documentation/build_process.md中查看其他构建属性和配置
AndroidErrorOnCustomJavaObject:
一个布尔属性,用于确定类型是否可以在不继承
Android.Runtime.IJavaObject
或Java.Lang.Object
的情况下实现Java.Lang.Throwable
:
class BadType : IJavaObject {
public IntPtr Handle {
get {return IntPtr.Zero;}
}
public void Dispose()
{
}
}
如果为True,此类型将生成XA4212错误,否则将生成XA4212警告。
Xamarin.Android 8.1中添加了对此属性的支持。
默认情况下,此属性为True。
我不得不继承Lava.Lang.object并删除Android.Runtime.IJavaObject来解决问题。
我通过右键单击解决方案并选择“清理”来修复此问题如果您在尝试清理后收到一条消息要求您验证项目是否已选择在Solution Configuration Manager中部署,您可以找到有关如何解决该问题的说明here。
所以我在更新visual studio时遇到了这个错误。我终于将它追溯到仍然指向mono.android的v4.1版本的csproj。进入并指向最新版本(我写作时的8.1)为我纠正了它。
<Reference Include="Mono.Android">
<HintPath>C:Program Files (x86)Microsoft Visual StudioPreviewProfessionalCommon7IDEReferenceAssembliesMicrosoftFrameworkMonoAndroidv8.1Mono.Android.dll<HintPath> </Reference>
以上是关于构建xamarin android项目不成功,错误XA4212的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.Forms:Android 项目构建错误 - AppData\Local\Xamarin 文件夹中缺少文件
Dotfuscator 在集成后构建解决方案的 Xamarin.Android 项目上引发错误
构建错误 NU1202 Xamarin.Android.Support.XXXX 与 monoandroid51 不兼容