此问题已在GitHub此处报告-
https://github.com/TorbenK/TK.CustomMap/issues/325
有没有其他人为此而挣扎过?我很高兴找到这个nuget软件包,因为它正是我想要的,但它需要安装Places和其他一些GooglePlayServices,由于这一冲突,我无法安装它们。
我也不确定卸载TK.CustomMap然后安装Play Services是否会有帮助,因为在GitHub上报告该问题的人说-
我将我的应用程序转换为.net 2.0,并不得不使用最新的谷歌播放服务60.1142.1让AdMob工作。在我卸载TK.CustomMap之前,它不会安装,现在TK.CustomMap不会重新安装,因为它只想使用GooglePlayServices 42.1021.1
严重性代码描述项目文件行禁止显示状态为Xamarin.GooglePlayServices.Tasks检测到错误NU1107版本冲突。请直接从项目中引用包以解决此问题。HunterTracker.Android->Xamarin.GooglePlayServices.Base 60.1142.1->Xamaring.GooglePlayServices.Tasks(=60.1142.1)HunterTracker.Android->HunterTracker->TK.CustomMap 2.0.1->Xamarin.GooglePlayServices.Location 42.1021.1->Xamarin.Google PlayServices.Tasks(=42.1021.1).
这几乎就是我在安装其他软件包时遇到的错误。github上没有解决方案。
有人在附近找到工作吗?或者有人知道如何"直接从项目引用包">吗?
感谢SushiHangover在上面为我指明了正确的方向,我能够发现我需要在这里做什么。起初,我在更新TK.CustomMap的nuget包时出错,因为v26Xamarin.Android.Support.Vector.Drawable
的目标是MonoAndroid8.0
,而v27的更新必须以MonoAndroid8.1
为目标。因此,为了获得更高版本的程序集,仅更新nuget包就花了很长时间,这样我就可以在解决方案中使用TK.CustomMap。但我最终还是做到了。以下是我所遵循的步骤(我记得最清楚)。我现在无法编译ios,因为我没有MAC,所以必须稍后进行修复。此修复程序仅适用于共享项目和Android项目
- 从github下载TK.CustomMap-master
- 提取它并完全删除Sample项目(我也删除了UWP项目,因为我现在对此并不感兴趣)
- 打开、建造然后关闭。从Android和共享项目中删除了包文件夹、vs文件夹、bin和obj(这一步可能没有必要,但我做到了…)
- 在软件包中,Android中的config将所有目标从
monoandroid80
更改为monoandroid81
保存文件 - 在TK.CustomMap.Android.csproj中,对于任何Xamarin.Android.Support或其他Xamarin.Android util软件包的每个v26.0.1,都将
26.0.1libMonoAndroid80
更改为27.0.2.1libMonoAndroid81
-保存文件 -
在TK.CustomMap.nuspec的nuget文件夹中,更改了本节中的目标框架
<group targetFramework="libMonoAndroid7.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="libMonoAndroid">
所以它可以针对任何版本的
- 使用包管理器(而非控制台)打开并更新所有nuget包。已构建调试和发布版本
此时打开了解决方案,我之前曾尝试在中实现TK.CustomMap以尝试修复。请记住,最初的问题是无法使用最新的框架,42.1021.1框架无法定位com.google.gms.location
和com.google.gms.places.ui
文件,因此必须更新它们或不更新TK.CustomMap
- 在问题解决方案中,从所有项目卸载TK.CustomMap
- 在问题解决方案中,Android项目添加了对TK.CustomMap项目中Android bin文件发布文件夹中所有dll的引用
- 通过Package Manager(而非控制台)为所有Xamarin.Android框架安装了问题解决方案的更新
- 使用软件包管理器(而非控制台)为所有项目安装了所有其他nuget软件包的更新
- 已使用包管理器(而非控制台)安装TK.CustomMap到共享项目
- 第二次添加了对android项目的引用。可能有帮助,也可能没有帮助
- 使用软件包管理器(而非控制台)安装TK.CustomMap Nuget软件包
- 在Live Player上成功构建并运行
感谢Sushi Hangover的建议。我还没有看到任何关于如何实现这一点的全面教程,所以我想我会发布自己的答案,以防其他人在看。如果你是VS的新手,那么所有这些东西一开始都不是在公园里散步。
感谢@Travis Flenor。这是我的解决方案。我稍微改变了你的顺序,以便在我的顺序上工作。1.确保github的原始项目(https://github.com/TorbenK/TK.CustomMap)工作,你可以运行它。2.在发生冲突的地方更新nugets。在我的情况下,我在谷歌播放库版本中感到矛盾。我在原始项目中更新了它,然后确保它可以运行。
3。在发布模式下编译整个解决方案。然后,从bin/release复制生成的dll,并将它们粘贴到我桌面的文件夹中。4.我引用了那些dll到共享项目和android项目。我只使用了nuget软件包管理器来安装tk.custom所需的一些丢失的软件包。请注意,您只会引用项目接受的一些dll。为此,Visual将提示"dll已引用"某些内容。5.先参考你的共享项目,然后再参考你的android项目。仅此而已。确保您可以重新编译解决方案。希望这能帮助