Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于android API级别不一致,如何获得编译时错误而不是NoSuchMethodError运行时错误?_Android_Xamarin_Compile Time_Nosuchmethoderror_Android Api Levels - Fatal编程技术网

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

对于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 Xamarin应用程序,带有
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),但允许我运行构建(当然还有崩溃)。但无论如何,这已经足以在开发过程中检测到此类问题。