Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 加载程序集时Xamarin Android异常:System.IO.FileNotFoundException:无法加载程序集';Android.Support.Compat';_Macos_Xamarin_Xamarin.forms_Xamarin.android_Xamarin.mac - Fatal编程技术网

Macos 加载程序集时Xamarin Android异常:System.IO.FileNotFoundException:无法加载程序集';Android.Support.Compat';

Macos 加载程序集时Xamarin Android异常:System.IO.FileNotFoundException:无法加载程序集';Android.Support.Compat';,macos,xamarin,xamarin.forms,xamarin.android,xamarin.mac,Macos,Xamarin,Xamarin.forms,Xamarin.android,Xamarin.mac,我正在为我的公司进行Xamarin.Forms项目,我们计划在IOS和Android上发布我们的应用程序(使用MacBookPro上的Visual Studio社区版)。到目前为止,一切似乎都很好。然后我突然无法在Android项目上构建调试或发布。我得到这个错误: /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2,2): Error: Excep

我正在为我的公司进行Xamarin.Forms项目,我们计划在IOS和Android上发布我们的应用程序(使用MacBookPro上的Visual Studio社区版)。到目前为止,一切似乎都很好。然后我突然无法在Android项目上构建调试或发布。我得到这个错误:

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2,2): Error: Exception while loading assemblies: System.IO.FileNotFoundException: Could not load assembly 'Xamarin.Android.Support.Compat, Version=1.0.0.0, Culture=neutral, PublicKeyToken='. Perhaps it doesn't exist in the Mono for Android profile?
File name: 'Xamarin.Android.Support.Compat.dll'
  at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve (Mono.Cecil.AssemblyNameReference reference, Mono.Cecil.ReaderParameters parameters) [0x00099] in /Users/builder/data/lanes/5147/c2a33d8e/source/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/DirectoryAssemblyResolver.cs:220 
  at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve (Mono.Cecil.AssemblyNameReference reference) [0x00000] in /Users/builder/data/lanes/5147/c2a33d8e/source/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/DirectoryAssemblyResolver.cs:170 
  at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences (Java.Interop.Tools.Cecil.DirectoryAssemblyResolver resolver, System.Collections.Generic.ICollection`1[T] assemblies, Mono.Cecil.AssemblyDefinition assembly, System.Boolean topLevel) [0x0015c] in <593a6fd557984367bb21e275d0fa0659>:0 
  at Xamarin.Android.Tasks.ResolveAssemblies.Execute (Java.Interop.Tools.Cecil.DirectoryAssemblyResolver resolver) [0x0019c] in <593a6fd557984367bb21e275d0fa0659>:0
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2,2):错误:加载程序集时出现异常:System.IO.FileNotFoundException:无法加载程序集“Xamarin.Android.Support.Compat,版本=1.0.0,区域性=中性,PublicKeyToken=”。也许它不存在于Mono for Android配置文件中?
文件名:“Xamarin.Android.Support.Compat.dll”
在/Users/builder/data/lanes/5147/c2a33d8e/source/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop/Java.Tools.Cecil/directorySassemblyResolver.cs:220中的Java.Interop.Tools.ceil.Tools.ReaderParameters参数参考[0x00099]中
在/Users/builder/data/lanes/5147/c2a33d8e/source/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/Java.Tools.Cecil/Java.Interop.Tools.Cecil/directorysassemblymresolver.cs:170中,找到Java.Interop.Tools.Cecil.assemblymesolver
在Xamarin.Android.Tasks.ResolveAssemblys.AddAssemblyReferences(Java.Interop.Tools.Cecil.directorySolver解析器,System.Collections.Generic.ICollection`1[T]Assemblys,Mono.Cecil.AssemblyDefinition assembly,System.Boolean topLevel)[0x0015c]中:0
在Xamarin.Android.Tasks.resolvestassemblies.Execute(Java.Interop.Tools.Cecil.directorySassemblyResolver-resolver)[0x0019c]中:0
我很确定我没有更改任何源文件,直到现在它还在生成中。。 我唯一使用的应用程序Compat是“Xamarin.Android.Support.v7.Compat”

我尝试过的事情:

  • 删除所有包并再次添加它们
  • 创建新的Xamarin.Forms项目并从git中提取代码-相同的错误
  • 安装Xamarin.Android.Support.Compat-收到错误: 您正在尝试将此软件包安装到目标为的项目中 “MonoAndroid,版本=v6.0”,但该软件包不包含任何 与之兼容的程序集引用或内容文件 框架

  • 确保我的目标框架与目标版本相同(使用API 23),并且我的最低目标版本是API 19
  • 删除Bin和Obj目录,重新启动解决方案并重新构建
我使用的是Xamarin.Forms 2.4.0.38779。我尝试删除所有包并更新最新表单,但仍然出现相同的错误

这是Droid项目的packages.config:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="modernhttpclient" version="2.4.2" 
   targetFramework="monoandroid60" />
 <package id="Plugin.PushNotification" version="1.1.2" 
   targetFramework="monoandroid60" />
 <package id="Rg.Plugins.Popup" version="1.0.4" 
   targetFramework="monoandroid60" />
 <package id="Xam.Plugin.DeviceInfo" version="3.0.2" 
   targetFramework="monoandroid60" />
 <package id="Xam.Plugins.Settings" version="3.1.1" 
   targetFramework="monoandroid60" />
 <package id="Xamarin.Android.Support.Animated.Vector.Drawable" 
   version="23.3.0" targetFramework="monoandroid60" />
 <package id="Xamarin.Android.Support.Design" version="23.3.0" 
   targetFramework="monoandroid60" />
 <package id="Xamarin.Android.Support.v4" version="23.3.0" 
   targetFramework="monoandroid60" />
 <package id="Xamarin.Android.Support.v7.AppCompat" version="23.3.0" 
    targetFramework="monoandroid60" />
 <package id="Xamarin.Android.Support.v7.CardView" version="23.3.0" 
    targetFramework="monoandroid60" />
 <package id="Xamarin.Android.Support.v7.MediaRouter" version="23.3.0" 
   targetFramework="monoandroid60" />
 <package id="Xamarin.Android.Support.v7.RecyclerView" version="23.3.0" 
    targetFramework="monoandroid60" />
 <package id="Xamarin.Android.Support.Vector.Drawable" 
    version="23.3.0" 
    targetFramework="monoandroid60" />
 <package id="Xamarin.Forms" version="2.4.0.38779" 
    targetFramework="monoandroid60" />
</packages>


如果需要,我将提供任何日志

所以在启用详细构建输出后,我发现了问题


Xamarin的错误描述非常糟糕,通过调查构建日志,我发现这个缺失的dll是我用于iOS和Android的Plugin.PushNotification NuGet包所必需的。从Android项目中删除对该包的所有引用后,它再次开始构建

今年的大部分时间里,我一直在我的Macbook Pro上从事Xamarin项目,以了解此类问题

如果将运行在OSX上的Xamarin项目复制到Windows或visa,通常会发生这种情况


解决方案总是一样的。列出项目中使用的所有软件包。执行整个软件包的删除操作,然后使用指定的版本号重新干净地重新安装它们。

您是否尝试删除BIN和OBJ文件夹并生成?是的,我也尝试过!即使是关闭的解决方案,在删除谁的..您介意共享您的
packages.config
文件后重新启动笔记本电脑吗?@YorkShen MSFT是的!您已更新我的问题您可以尝试使用此解决方案: