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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,清理,重建......

    Severity    Code    Description Project File    Line    Suppression State
    Error       Exception 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" />

我的设置如何看起来像enter image description here

参考文献:enter image description here

更新:我已重新安装所有nugetpackages并成功运行1个PC上的Android项目,但有趣的是同一个项目没有在另一台PC上运行。它返回不同但相似的错误。

Severity    Code    Description Project File    Line    Suppression State
Error       The "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
另一答案

可悲的是,这里描述的步骤对我没有帮助。但我开始了解这个事业。

第一步是确定要使用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位置。

error message Search the duplicate namespace in assembler explorer

另一答案

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

以上是关于Xamarin.Android.Support.Fragment,Version = 1.0.0.0,Culture = neutral,PublicKeyToken ='。也许它在Mono 的主要内容,如果未能解决你的问题,请参考以下文章