如何获取编译时错误而不是NoSuchMethodError运行时错误的android API级别不一致?

时间:2016-04-08 18:58:08

标签: android xamarin compile-time nosuchmethoderror android-api-levels

我在android:minSdkVersion="15"android:targetSdkVersion="21"上使用了Android Xamarin应用程序。原来,IDE(xamarin工作室,视觉工作室)和编译过程只是忽略了我是否使用了API 15之上的东西,这不是预期的行为。

例如,Path.addArc(float,float,float,float,float,float)中有一个方法API 21,我可以使用上面的清单设置,这给我一个运行时错误NoSuchMethodError

可以轻松修复Path.addArc(RectF,float,float)中的重载API 1,但我的问题更多的是如何获取编译时错误或运行时错误。

[UPDATE]

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

有可能吗?

1 个答案:

答案 0 :(得分:1)

要获得编译时警告,您需要将Target Framework设置为您要支持的最小SDK。当您尝试使用更高级别的api时,这会给您带来错误。打开项目选项对话框。在此对话框中,单击Build>一般

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

的信息

如果您只想在保持目标框架相同的同时获得错误,则可以修改IDE首选项以抛出编译时错误与警告。 enter image description here