对于 android API 级别不一致,如何获得编译时错误而不是 NoSuchMethodError 运行 时间错误?

How to get a compile time error instead of NoSuchMethodError run-time error for android API level inconsistencies?

我有一个带有 android:minSdkVersion="15"android:targetSdkVersion="21" 的 Android Xamarin 应用程序。原来 IDE (xamarin studio, visual studio) 和编译过程只是忽略如果我使用的是 API 15 以上的东西,这不是这里的预期行为。

例如,API 21 中有一个方法 Path.addArc(float,float,float,float,float,float),我能够将它与上面的清单设置一起使用,这给了我一个 运行 时间错误 NoSuchMethodError.

使用 API 1 中的重载 Path.addArc(RectF,float,float) 有一个简单的修复方法,但我的问题更多是关于如何获得编译时错误或 运行 时间。

[更新]

基本上我想保持 API 15(最低 android 版本)的向后兼容性,同时将 API 21 作为目标 android 版本。当我尝试使用 API 15 以上的任何方法时,我想获得 IDE 支持。这意味着我需要一个警告,说明我使用的方法在定义的最低 android 版本中不存在,因此请进行 运行 时间版本检查。

可能吗?

要获得编译时警告,您需要将目标框架设置为您想要支持的最小 SDK。当您尝试使用更高级别的 api 时,这会给您带来错误。打开项目选项对话框。在此对话框中,单击“构建”>“常规”

您可以在此处阅读有关 api 级别的信息 https://developer.xamarin.com/guides/android/application_fundamentals/understanding_android_api_levels/#Target_Framework

如果您只想在保持目标框架不变的情况下出现错误,您可以修改 IDE 首选项以抛出编译时错误而不是警告。