对于android API级别不一致,如何获得编译时错误而不是NoSuchMethodError运行时错误?
我有一个Android Xamarin应用程序,带有对于android API级别不一致,如何获得编译时错误而不是NoSuchMethodError运行时错误?,android,xamarin,compile-time,nosuchmethoderror,android-api-levels,Android,Xamarin,Compile Time,Nosuchmethoderror,Android Api Levels,我有一个Android Xamarin应用程序,带有Android:minSdkVersion=“15”和Android:targetSdkVersion=“21”。事实证明,如果我使用的是API 15以上的东西,IDE(xamarin studio、visual studio)和编译过程就会忽略,这在这里不是预期的行为 例如,有一个方法Path.addArc(float,float,float,float,float)来自API21,我能够将它与上面的清单设置一起使用,这给了我一个运行时错误N
Android:minSdkVersion=“15”
和Android:targetSdkVersion=“21”
。事实证明,如果我使用的是API 15以上的东西,IDE(xamarin studio、visual studio)和编译过程就会忽略,这在这里不是预期的行为
例如,有一个方法Path.addArc(float,float,float,float,float)
来自API21
,我能够将它与上面的清单设置一起使用,这给了我一个运行时错误NoSuchMethodError
使用API1中的重载Path.addArc(RectF,float,float)
有一个简单的修复方法,但我的问题更多的是如何获得编译时错误或运行时错误
[更新]
基本上,我希望保持API15
(最低android版本)的向后兼容性,同时将API21
作为目标android版本。当我尝试使用API 15上面的任何方法时,我想获得IDE支持。这意味着我需要一个警告,说明我使用的方法在定义的最低android版本中不存在,因此请执行运行时版本检查
有可能吗?要获得编译时警告,需要将目标框架设置为要支持的最小SDK。当您尝试使用更高级别的API时,这将给您带来错误。打开“项目选项”对话框。在此对话框中,单击生成>常规 您可以在这里阅读有关api级别的信息 如果您只是想在保持目标框架不变的情况下得到一个错误,那么您可以修改IDE首选项以抛出编译时错误和警告。
感谢您提供的链接,您完全正确,要获得编译时错误,您必须将编译API级别切换到所需级别。可能我的问题还不清楚,我将对其进行改进,但基本上我希望在将API21作为目标android版本的同时,保持API15(最低android版本)的向后兼容性。当我尝试使用API 15以上的任何方法时,我希望获得IDE支持。这意味着我需要一个警告,说明我使用的方法在定义的最低android版本中不存在,因此请执行运行时版本检查。有可能吗?更新了答案。你可以在Xamarin studio中更改你的设置来完成这项任务。亲爱的,这正是我需要的。有趣的是,它用红线标记为error(我选择了error),但允许我运行构建(当然还有崩溃)。但无论如何,这已经足以在开发过程中检测到此类问题。