我有一个带有 android:minSdkVersion="15"
和 android:targetSdkVersion="21"
的 Android Xamarin 应用程序。事实证明,如果我使用的是 API 15 以上的东西,IDE(xamarin studio、visual studio)和编译过程将被忽略,这不是预期的行为。
例如,API 21
中有一个方法 Path.addArc(float,float,float,float,float,float)
,我可以将它与上面的 list 设置给了我一个运行时错误 NoSuchMethodError
。
使用 API 1
中的重载 Path.addArc(RectF,float,float)
有一个简单的修复方法,但我的问题更多是关于如何进行编译而是时间错误或运行时。
[更新]
基本上,我想在将 API 21
作为目标 android 版本的同时保持对 API 15
(最低 android 版本)的向后兼容性。当我尝试使用 API 15
以上的任何方法时,我想获得 IDE 支持。这意味着我需要一个警告,说明我使用的方法在定义的最低 android 版本中不存在,所以请进行运行时版本检查。
这可能吗?
最佳答案
要获得编译时警告,您需要将目标框架设置为您想要支持的最小 SDK。当您尝试使用更高级别的 api 时,这会给您带来错误。打开项目选项对话框。在此对话框中,单击“构建”>“常规”
您可以在此处阅读有关 api 级别的信息 https://developer.xamarin.com/guides/android/application_fundamentals/understanding_android_api_levels/#Target_Framework
关于android - 对于 android API 级别不一致,如何获取编译时错误而不是 NoSuchMethodError 运行时错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36507269/