我有一个Xamarin项目,它基于MvvmCross
。该项目适用于iOS和Android。我在Visual Studio 15中打开了这个项目。我遇到了一些错误,我很快就解决了。有一些错误,即使在Google和Stackoverflow上搜索后也无法解决。我已经尝试了在Stackoverflow上找到的每个方法,但仍然存在所有剩余的错误。
该项目使用的是第三方库,如RestSharp和BoxApi.V2(更多)
我在下面发布我的错误日志。
Severity Code Description Project File Line Suppression State
Error The "ResolveLibraryProjectImports" task failed unexpectedly.
System.IO.FileNotFoundException: Could not load assembly 'RestSharp(Android), Version=0.0.0.0, Culture=neutral, PublicKeyToken='. Perhaps it doesn't exist in the Mono for Android profile?
File name: 'RestSharp(Android).dll'
at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters)
at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(String fullName, ReaderParameters parameters)
at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(String fullName)
at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.GetAssembly(String fileName)
at Xamarin.Android.Tasks.ResolveLibraryProjectImports.Extract(DirectoryAssemblyResolver res, ICollection`1 jars, ICollection`1 resolvedResourceDirectories, ICollection`1 resolvedAssetDirectories, ICollection`1 resolvedEnvironments)
at Xamarin.Android.Tasks.ResolveLibraryProjectImports.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() BoxApi.V2 (Android)
此解决方案中包含的所有项目都会重复此错误。所以我多次收到此错误。
我还想补充说,该项目以前是在MAC上构建的,而我正在使用Windows,这是否会产生一些兼容性或跨操作系统问题? 我检查了所有的装配参考,一切正常。
答案 0 :(得分:34)
我确实在Visual Studio 2017中使用了全新的Xamarin.Forms应用程序。
根本原因似乎是我让VS2017在它的默认位置'C:\ Users \ Dave \ Documents \ Visual Studio 2017 \ Projects'中创建项目,这导致现在有一个或多个文件现在有一个路径太久了。
我将解决方案移动到我的D驱动器的根目录,它构建没有任何问题。
答案 1 :(得分:10)
您的问题很可能与Xamarin论坛上的this帖子以及this bugzilla条目相关联。如果没有可重复的样本,我建议您尝试的是:
bin
和obj
文件夹如果没有这一切,那么在没有可重复的样本和可能的Xamarin日志的情况下,任何人都不可能帮助你。
答案 2 :(得分:8)
编辑你的android项目文件(csproj),如下所示
此问题主题可能会指导https://github.com/xamarin/AndroidSupportComponents/issues/51
答案 3 :(得分:3)
有同样的问题。这是我的解决方案
答案 4 :(得分:2)
对我来说,问题出在我的xaml文件中...
以某种方式设置我使用“。”的布局范围时作为分隔符,而不是','
例如
AbsoluteLayout.LayoutBounds="0.5.0.3,1,0.3"
应该是AbsoluteLayout.LayoutBounds="0.5,0.3,1,0.3"
因此更改了“。”到“,”解决了问题
答案 5 :(得分:2)
我正在使用XAML( .xaml)和代码隐藏文件( .xaml.cs)。我的问题是我拥有相同的页面名称,但使用了不同的命名空间。 XAML和文件背后的代码不匹配。所以最后这是我的XAML的问题,因为它当然找不到view元素。
答案 6 :(得分:1)
就我而言,我只是忘记删除 XAML 中的 clicked 事件,该事件在我的代码隐藏(cs 文件)中不存在。之后,我只是清理和重建。
我认为错误是由未更新的引用引起的。
答案 7 :(得分:1)
不确定是否会帮助您的任何人。对于我的情况,我评论了错误的类(例如那些缺少引用的类),它将开始收集所有内容并重新构建。
答案 8 :(得分:1)
还有问题吗?检查您的名称空间和您的xaml代码。有时候,当您复制/粘贴某些文件时,可能是问题所在。
答案 9 :(得分:1)
这对我有用:
希望这会有所帮助。
答案 10 :(得分:1)
我们也遇到过这种情况,在构建多个项目和非常深/复杂的依赖树(我们的示例中有100多个项目)时,这似乎是某种竞争条件。
我们能够解决此问题的唯一方法(除了不断重建之外)是禁用Visual Studio 2017的并行构建功能(工具->选项->项目和解决方案->生成并运行->“ 1”最大数量并行项目构建)。
问题似乎出在ResolveLibraryProjectImports.cs(https://github.com/xamarin/xamarin-android/blob/93ddf96f86710ad848d5189858567dd7fe964579/src/Xamarin.Android.Build.Tasks/Tasks/ResolveLibraryProjectImports.cs)中,最有可能是竞争条件及其逻辑来缩短文件名。
对此有零测试,这意味着很可能存在一些躲闪的代码。
我将尝试进一步挖掘并在GitHub上发布问题,但要找到可靠的存储库可能非常困难。
答案 11 :(得分:1)
我遇到相同的错误,我通常通过关闭所有其他打开的xamarin解决方案来解决此问题,还有另一种方法可以解决此问题->转到taskmanager并找到MSBUILD服务并结束该服务->清理您的解决方案- >重建
答案 12 :(得分:1)
这仍然是一个新问题,在我想尝试将代码转移到更短路径的所有尝试之后 - 然而由于svn管理将变得复杂,这是很多工作,所以我想首先验证路径是否真的是问题,一种方法是检查android SDK的存储位置。我在Mac上并且调查显示SDKs路径比我的项目路径长。另外,我尝试了一个新项目,这是正确的编译。
所以我放弃了改变的想法。相反,我使用svn并比较自上次正确构建以来发生的变化。
比较显示droid的项目文件以某种方式引用iOS的项目文件,似乎是Visual Studio的一些bug。所以我恢复了变化,而且都恢复了正常。
答案 13 :(得分:1)
就我而言,这个问题与我的xaml有关 为了让这个错误消失,我必须解决第二个问题。我使用新的默认内容清理该类,然后清理所有项目和解决方案。最后,关闭视觉工作室,打开它,运行项目,它的工作原理.-。
答案 14 :(得分:1)
当我意外地在解决方案中包含的类库中安装nuget包时,发生了这种情况。我只需要从类库项目中卸载软件包。
答案 15 :(得分:0)
我也有这个错误。在我的情况下,它伴随着Xamarin.Forms.Maps
不能正确导入xaml.g.cs
文件之一的情况。我所有的using语句正确。 IDE没有显示任何错误,但它一直告诉我Xamarin.Forms
没有名称空间Map。它是在MapPage.xaml.g.cs
中以Xamarin.Forms.Map
而不是Xamarin.Forms.Maps.Map
的形式生成的,因此我无法手动强制进行修复。事实证明,建议的地图xmlns:maps
引起了问题。 IDE告诉我使用"http://xamarin.com/schemas/2014/forms"
,但是正确的命名空间是"clr-namespace:Xamarin.Forms.Maps;assembly=Xamarin.Forms.Maps"
。更改此设置后,便可以构建我的App1.dll
答案 16 :(得分:0)
我遇到了同样的问题,上述解决方案都没有奏效。在关于密码学的列表上注意到并出现错误后,我知道它必须与启用FIPS相关(VPN客户端需要)
通过禁用FIPS并重新启动Visual Studio,问题得以解决。
答案 17 :(得分:0)
这就是我得到错误的方式。在StackLayout中,我放入了Padding属性,并用空格而不是逗号分隔了4位数字。 为了找到该错误,我不得不单独注释掉XAML控件,然后进行重建以隔离错误的出处,最终我找到了问题所在。 所以基本上这是我在XAML代码中收到语法错误的错误消息! 我希望以任何其他语言得知错误是什么,因此我可以在几秒钟内修复它。但这花了我几个小时-尽管下次我知道该怎么办。
答案 18 :(得分:0)
问题在于: System.IO.PathTooLongException:指定的路径,文件名或两者都太长。完全限定的文件名必须少于260个字符,目录名必须少于248个字符。
尝试将项目移动到另一个位置,例如&#34; C:/&#34; ,或更改项目的名称以获得更简短的内容
答案 19 :(得分:0)
简答:
OR
我面临与OP相同的解决方案。这是OP所遇到的错误的解决方案。我已经解决了下面其他人可能发生的其他错误原因。
说明: 通常会出现两种不同类型的问题。第一个包括项目文件对于System.IO.reader来说太长导致错误,包括一些文本沿着&#34; file.path太长&#34;
错误的第二个原因是VS形成了dll的正确名称,但是项目资源的路径不正确。一个例子可能是VS使用&#34; App1 \ bin \ Debug \ net452 \ temp.dll&#34;而不是&#34; App1 \ bin \ Debug \ net1.6 \ temp.dll&#34;。
答案 20 :(得分:0)
如果错误地遇到任何语法错误,例如在我的情况下,也可能会出现这种问题:ListView中存在两个文本单元格-
<ListView x:Name="ProductsView">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding ProductId}" />
<TextCell Text="{Binding ProductDescription}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我浏览了该问题的其他帖子,发现由于存在语法错误而发生了相同的问题,而VS不会直接报告该错误。因此,请查找此文件,否则,请重新安装兼容版本的xamarin.forms->干净解决方案->通过重新打开VS进行重建。
答案 21 :(得分:0)
我今天也遇到了同样的问题。经过两天的搜索,我找到了解决方法here。问题是Xamarin.Forms库在通过从Visual Studio 2017中选择跨平台的Mobile(Xamarin.Forms)项目模板来创建项目时,并未安装其所有从属Nuget软件包。我必须手动安装升级的从属nuget软件包来构建项目成功。另外,在解决此问题的末尾还删除并添加了Xamarin.Forms。
此外,在运行两个Visual Studio 2017实例时还需要一些时间来创建问题,请确保只有一个实例在运行,因为我也遇到了此问题。
答案 22 :(得分:0)
xmlns:maps="clr-namespace:Xamarin.Forms.Maps; assembly=Xamarin.Forms.Maps"
问题是由于上面的分号和如上所述的程序集之间存在空间。差距一缩小,就会编译。
答案 23 :(得分:0)
我已经面对这个问题一千次了它实际上是一件非常简单的事情,当你创建一个新项目时,visual studio在C:Drive中创建它的默认文件夹你所要做的就是将你的项目移出其他一些Drive Like D:,E:无论如何确保将其保留在驱动器的根目录中,即如果您将其移动到D中:然后将其放置为D / Project / solutionFile
答案 24 :(得分:0)
Shorteninig解决方案的路径(文件夹名称)为我解决了此问题。
例如:路径为:
C:\Users\Username\Downloads\Compressed\ListView-GettingStarted-in-Xamarin-Forms-master\ListView-GettingStarted-in-Xamarin-Forms-master\GettingStarted
,我将其更改为:
C:\Users\HelloKali\Downloads\Compressed\3\2\1.
答案 25 :(得分:0)
这可能是您的参考/参考组件的问题?
如果您查看解决方案资源管理器中每个项目的参考文件夹下的内容,则Visual Studio无法找到,删除并重新添加它们的任何引用(右键单击要添加的参考文件夹)。