FusedLocationProviderClient - 无法找到类型或命名空间(错误)

时间:2018-04-02 16:40:23

标签: android xamarin xamarin.android fusedlocationproviderclient

很抱歉,如果这很简单(也无法在Marshmallow模拟器上安装谷歌播放服务,并且有点紧张!)。

我的目标是在Visual Studio 2017(15.6.3)的Xamarin Android C#项目中获取GPS数据。

我正在关注Xamarin位置服务演练(https://docs.microsoft.com/en-gb/xamarin/android/platform/maps-and-location/location#using-the-fused-location-provider)和源代码示例。我尝试过分别针对Android 6.0(我的首选)以及7.1和M​​onoAndroid6以及MonoAndroid71。

我确实已经为Xamarin.GooglePlayService.Location,.Maps和所需的基础'安装了NuGet包。库(.Base,.Basement和.Tasks) - 版本32.961.0和42.1021.1(取决于目标)。

以下代码告诉我"类型或命名空间名称' FusedLocationProviderClient'找不到(你是否错过了使用指令或汇编引用?"

private FusedLocationProviderClient fusedLocationProviderClient;

我使用对象浏览器来浏览这些库,甚至没有看到FusedLocationProviderClient(只是FusedLocationProviderApi - 我在SO上读过的也是不推荐的......)。

我应该使用年龄较大的'针对6.0的位置服务API,还是我遗漏了其他内容?

非常感谢。

2 个答案:

答案 0 :(得分:1)

只需添加NuGet包Xamarin.GooglePlayServices.Location

答案 1 :(得分:0)

Xamarin.Android项目涉及三个API级别,一个是Xamarin特定的,一个是Target Framework不是与{{1}混淆在应用程序的清单中设置Target Android Version

  

targetSdkVersion - 指定在构建应用程序时使用的框架。此API级别在编译时由Xamarin.Android使用。

     

Target Framework - 指定您希望应用支持的最早的Android版本。此API级别由Android在运行时使用。

     

Minimum Android Version - 指定您的应用要运行的Android版本。此API级别由Android在运行时使用。

Target Android Version设置为最新和最高(目前为8.1),将Target Framework设置为Target Android Version并(重新)安装您的软件包。

了解Android API级别:https://docs.microsoft.com/en-us/xamarin/android/app-fundamentals/android-api-levels?tabs=vswin