Xamarin.Android.Support.Fragment,Version = 1.0.0.0,Culture = neutral,PublicKeyToken ='。也许它在Mono

古人学问无遗力,少壮工夫老始成。这篇文章主要讲述Xamarin.Android.Support.Fragment,Version = 1.0.0.0,Culture = neutral,PublicKeyToken =' 。也许它在Mono 相关的知识,希望能为你提供帮助。
我试图使用Xamarin.android.Support库版本25.3.1,但由于一个错误,我决定降级回我以前的版本23.3.0。降级后我收到以下错误消息。无论我尝试什么,我都无法摆脱它。我试图删除所有bin,obj,tmp等文件夹。重启VS2015,清理,重建......

SeverityCodeDescription Project FileLineSuppression State ErrorException while loading assemblies: System.IO.FileNotFoundException: Could not load assembly 'Xamarin.Android.Support.Fragment, Version=1.0.0.0, Culture=neutral, PublicKeyToken='. Perhaps it doesn't exist in the Mono for Android profile? File name: 'Xamarin.Android.Support.Fragment.dll' at java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters) at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(DirectoryAssemblyResolver resolver, ICollection`1 assemblies, AssemblyDefinition assembly, Boolean topLevel) at Xamarin.Android.Tasks.ResolveAssemblies.Execute(DirectoryAssemblyResolver resolver)

我在package.config文件中发现了一个小小的变化。现在所有低于targetFramework =“monoandroid71”。在升级降级之前,他们是targetFramework =“monoandroid70”,我将它们替换为manulla,但它根本没有帮助。我该如何解决这个问题?
< package id="Xamarin.Android.ShortcutBadger" version="1.1.809" targetFramework="monoandroid71" /> < package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="23.3.0" targetFramework="monoandroid71" /> < package id="Xamarin.Android.Support.CustomTabs" version="23.3.0" targetFramework="monoandroid71" /> < package id="Xamarin.Android.Support.Design" version="23.3.0" targetFramework="monoandroid71" /> < package id="Xamarin.Android.Support.v4" version="23.3.0" targetFramework="monoandroid71" /> < package id="Xamarin.Android.Support.v7.AppCompat" version="23.3.0" targetFramework="monoandroid71" /> < package id="Xamarin.Android.Support.v7.CardView" version="23.3.0" targetFramework="monoandroid71" /> < package id="Xamarin.Android.Support.v7.MediaRouter" version="23.3.0" targetFramework="monoandroid71" /> < package id="Xamarin.Android.Support.v7.Palette" version="23.3.0" targetFramework="monoandroid71" />

我的设置如何看起来像
Xamarin.Android.Support.Fragment,Version = 1.0.0.0,Culture = neutral,PublicKeyToken =&#39;。也许它在Mono

文章图片

参考文献:
Xamarin.Android.Support.Fragment,Version = 1.0.0.0,Culture = neutral,PublicKeyToken =&#39;。也许它在Mono

文章图片

更新:我已重新安装所有nugetpackages并成功运行1个PC上的Android项目,但有趣的是同一个项目没有在另一台PC上运行。它返回不同但相似的错误。
SeverityCodeDescription Project FileLineSuppression State ErrorThe "ResolveLibraryProjectImports" task failed unexpectedly. System.IO.FileNotFoundException: Could not load assembly 'myApp, Version=0.0.0.0, Culture=neutral, PublicKeyToken='. Perhaps it doesn't exist in the Mono for Android profile? File name: 'myApp.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() myApp.Droid

答案我的问题是我更新了xamarin表格到2.5.0.121934,然后,它显示错误“加载程序集时出现异常:System.IO.FileNotFoundException:无法加载程序集'Xamarin.Android.Support.Fragment,Version = 1.0.0.0,Culture =中性,PublicKeyToken ='。也许它在Mono for Android个人资料中不存在?“
所以我将我的xamarin.form降级到2.3.4.247,然后它成功构建。
另一答案这里最好的选择是从Xamarin.Android项目中卸载所有Xamarin和Android软件包。然后再次安装Xamarin.Forms,它将添加正确的依赖项。
或者,尝试下载
Install-Package Xamarin.Android.Support.Fragment

另一答案【Xamarin.Android.Support.Fragment,Version = 1.0.0.0,Culture = neutral,PublicKeyToken =' 。也许它在Mono】可悲的是,这里描述的步骤对我没有帮助。但我开始了解这个事业。
第一步是确定要使用support.Fragment包的包。
为此,请将MsBuild输出设置为Diagnostics。 (tools => options => projects and solutions => 构建并运行)
然后构建,一旦报告错误,在日志中找到support.fragment。
在我的情况下,Acr.Userdialogs试图获得support.Fragment框架。
依赖“Xamarin.Android.Support.Fragment,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null”。 (TASKID:415)
无法解析此引用。无法找到程序集“Xamarin.Android.Support.Fragment,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null”。检查以确保磁盘上存在程序集。
如果您的代码需要此引用,则可能会出现编译错误。 (TASKID:415)
“Acr.UserDialogs,Version = 1.0.0.0,Culture = neutral,processorArchitecture = MSIL”要求。 (TASKID:415)
从这里起,这是一个降级Acr.Userdialogs框架的问题,直到这种依赖关系消失。
希望这可以帮助 :-)
另一答案我重命名了标题,因为我有2个以下问题,它们看起来确实相似,并且都只与Android项目相关。
  1. 第一个是抱怨support.Fragment可用于24.x.x以上,但我使用的是23.0.x.造成这种情况可能是因为从25.3.1版本降级。无论我尝试什么,清洁bin,obj,temp,重建都没有帮助。我使用命令Update-Package –reinstallto重新安装解决方案中的所有NuGet包。这有助于我的一台电脑。但在我的另一台电脑上,我在问题中得到第二个错误。
  2. 下面的错误信息确实告诉你在android下找不到PCL项目。如果查看“输出”窗口,它将告诉您在Debug / Bin文件夹中找不到它。当我查看我的Bin文件夹时,我发现没有生成任何内容。 “ResolveLibraryProjectImports”任务意外失败。 System.IO.FileNotFoundException:无法加载程序集'myApp,Version = 0.0.0.0,Culture = neutral,PublicKeyToken ='。也许它在Mono for Android配置文件中不存在?文件名:'myApp.dll'
看起来这是由使用.net标准1.0的NuGet包引起的。我的PCL项目仍在使用PCL配置文件。如果您有来自Adam Pedley的article中所述的.Net Core 1.0库,这通常没有问题。如何在我的另一台计算机上工作是因为我安装了VS2017。 VS2017安装自动安装.Net Core。但我正在研究VS2015,它需要单独安装。
我希望这可以帮助其他人解决问题。
另一答案这不是一个明确的答案,但由于这种类型的依赖性问题似乎在多个地方蔓延,我终于找到了一种方法来至少看到重叠的位置。请参见屏幕截图如下。只需使用assember资源管理器“搜索”功能在错误消息中找到命名空间。然后单击命名空间,它将弹出重复的条目及其dll位置。
Xamarin.Android.Support.Fragment,Version = 1.0.0.0,Culture = neutral,PublicKeyToken =&#39;。也许它在Mono

文章图片
Xamarin.Android.Support.Fragment,Version = 1.0.0.0,Culture = neutral,PublicKeyToken =&#39;。也许它在Mono

文章图片

另一答案对于任何可能会遇到这种情况的人来说,我的诀窍是放弃我的app/app/obj/Debug/app.Core.csprojFileListAbsolute.txtapp/app.Droid/Resources/Resource.Designer.cs文件中的所有更改,然后删除binobj文件夹的内容,最后重建项目。

    推荐阅读