我在Visual Studio 2017上使用Xamarin创建了一个Android应用程序。我正在尝试使用本指南(http://www.c-sharpcorner.com/blogs/find-latitude-and-longitude-using-c-sharp1)使用NuGet包GoogleMaps.LocationServices。我已经安装好了 但是,当我尝试在我的代码上使用包时,如下所示,我只是得到一个错误,说它无法找到命名空间: 这意味着我无法创建一个GoogleLocationService()对象,这是我使用位置地址列表创建Google Maps固定点所需要做的。
任何人都知道为什么我会收到这个错误?不确定我是否只需要使用不同的命名空间,因为本指南是从2013年开始的。
答案 0 :(得分:2)
GoogleMaps.LocationServices 1.2.1 NuGet包中包含.NET 4.0的程序集,没有其他目标框架。所以它不支持Android项目。 NuGet不会添加对GoogleMaps.Gelocation程序集的引用,因为它位于lib / net40目录中,所以它不被认为是兼容的。
相反,我会看一下Xamarin.GooglePlayServices.Location NuGet包。
查看NuGet包的内容,它有一个内容文件GoogleMaps.LocationServices.readme.txt
,这似乎是您可以将其安装到Android项目中的原因。此GoogleMaps.LocationServices.readme.txt
文件已添加到您的项目中。
理想情况下,NuGet包应该在NuGet包的根目录中有一个readme.txt
文件,而不是向项目添加文件。这样的readme.txt文件将在Visual Studio安装时自动打开,无需向项目添加任何内容。删除内容文件还会阻止将NuGet包安装到Android项目或任何其他不受支持的项目类型中。
较旧的GoogleMaps.LocationsServices 0.9.0可以安装到Android项目中,但这似乎是因为NuGet包未正确打包。此版本的NuGet包中的GoogleMaps.Gelocation程序集位于lib目录中,并不表示任何目标框架,因此在所有项目类型中都允许使用它,这似乎不正确。
答案 1 :(得分:0)
很难跟踪2017年方法的新签名是什么,但是如果你将包的版本改为
0.9.0
并使用命名空间
using GoogleMaps.Geolocation;
这个例子应该可行。