上下观古今,起伏千万途。这篇文章主要讲述构建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标记,这些标记特定于构建条件。
【构建xamarin android项目不成功,错误XA4212】您可以在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>
推荐阅读
- 'Android.Runtime.UncaughtExceptionHandler'的类型初始值设定项引发了异常
- Android Check Internet Connection Android 8.0
- 在Xamarin Forms Project中的OnAppearing方法中调用InitializeComponent
- 如何限制用户输入EditText(Xamarin.Android)中小数点分隔符后的最大2位或3位数()
- 使用Android Deep Link的UPI支付网关
- “android.runtime.JavaProxyThrowable”是什么意思(我该如何解决?)
- 如何在C中打印Pascal三角形
- 如何在C中获得数字的阶乘
- 在Symfony 1.4中实现全局非静态辅助函数