此问题已在GitHub上报告-
https://github.com/TorbenK/TK.CustomMap/issues/325
还有其他人为此苦苦挣扎吗?我很高兴找到这个nuget软件包,因为它完全可以满足我的要求,但是它需要安装Places和其他一些GooglePlayServices,由于这种冲突,我无法安装它们。
我也不确定卸载TK.CustomMap然后安装Play服务是否会有所帮助,因为在GitHub上报告此问题的人说-
我将我的应用程序转换为.net 2.0,并且不得不使用最新的Google Play服务 60.1142.1,AdMob才能正常运行。在我卸载TK.CustomMap之前,它不会安装,现在,TK.CustomMap将不会重新安装,因为它只想使用GooglePlayServices 42.1021.1
严重性代码描述项目文件行抑制状态 错误X1marin.GooglePlayServices.Tasks的NU1107版本冲突。直接从项目中引用该软件包即可解决此问题。 HunterTracker.Android-> Xamarin.GooglePlayServices.Base 60.1142.1-> Xamarin.GooglePlayServices.Tasks(= 60.1142.1) HunterTracker.Android-> HunterTracker-> TK.CustomMap 2.0.1-> Xamarin.GooglePlayServices.Location 42.1021.1-> Xamarin.GooglePlayServices.Tasks(= 42.1021.1)。
这几乎是我尝试安装其他软件包时遇到的确切错误。 github上没有解决方法。
有人找到解决方法吗?还是有人知道如何“直接从项目中引用程序包” ?
答案 0 :(得分:0)
由于上面提到的SushiHangover的评论向我指明了正确的方向,所以我能够找到我需要在这里做的事情。我首先更新TK.CustomMap的nuget包时出错,因为v26 Xamarin.Android.Support.Vector.Drawable
的目标是MonoAndroid8.0
,而v27更新的目标是MonoAndroid8.1
,所以花了很多时间才能够更新nuget软件包以获取具有更高版本的程序集,因此我可以在解决方案中使用TK.CustomMap。但是我最终能够到达那里。这是我遵循的步骤(据我所记得,这是最好的)。我现在无法编译ios,因为我没有MAC,因此稍后必须修复。此修复仅适用于共享项目和Android项目
monoandroid80
更改为monoandroid81
保存文件26.0.1\lib\MonoAndroid80
更改为27.0.2.1\lib\MonoAndroid81
-保存文件在TK.CustomMap.nuspec的nuget文件夹中,此部分更改了目标框架
<group targetFramework="lib\MonoAndroid7.0">
<dependency id="Xamarin.GooglePlayServices.Location" version="42.1021.1" />
<dependency id="Xamarin.GooglePlayServices.Places" version="42.1021.1" />
<dependency id="Xamarin.Android.Maps.Utils" version="0.5.0" />
<dependency id="Xamarin.Forms" version="2.5.0.91635" />
<dependency id="Newtonsoft.Json" version="10.0.3" />
</group>
到
<group targetFramework="lib\MonoAndroid">
因此它可以定位任何版本
在这一点上,打开的解决方案我之前曾尝试实现TK.CustomMap来尝试修复。请记住,最初的问题是无法使用最新的框架,并且42.1021.1框架无法找到com.google.gms.location
和com.google.gms.places.ui
文件,因此必须对其进行更新或没有TK.CustomMap
感谢寿司宿醉的建议。我在任何地方都没有看到任何有关如何完成此操作的综合教程,因此我想我会发布自己的答案,以防其他人在寻找。当然,如果您不熟悉VS,那么所有这些东西一开始都不是在公园里散步。
答案 1 :(得分:0)
感谢@Travis Fleenor。这是我的解决方案。为了您的工作,我改变了您的顺序。
1.确保来自github(https://github.com/TorbenK/TK.CustomMap)的原始proyect可以运行。
2.更新您在其中发生冲突的nuget。就我而言,我在googleplay库版本中遇到了冲突。我在原始proyect中对其进行了更新,然后确保它可以运行。
3.以发布模式编译整个解决方案。然后,从bin / release复制生成的dll,并将其粘贴到我桌面的文件夹中。
4.我将这些dll引用为共享的proyect和android proyect。我仅使用nuget软件包管理器来安装tk.custom所需的一些缺少的软件包。请注意,您只会引用proyect接受的某些dll。对于市长,Visual会提示'dll已引用'某些内容。
5.首先引用您的共享proyect,然后引用您的android。就这样。确保您可以重新编译解决方案。
希望这会有所帮助