我刚刚从MVVMCross版本3.5更新了一个大型Xamarin项目到4.0。我已经修复了所有命名空间问题和错误,但我仍然坚持这个错误:
The "LinkAssemblies" task failed unexpectedly.
Xamarin.Android.XamarinAndroidException: error XA2006: Reference to metadata item
'System.Boolean Android.OS.BaseBundle::GetBoolean(System.String,System.Boolean)'
(defined in 'MvvmCross.Droid.FullFragging, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=null') from 'MvvmCross.Droid.FullFragging, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=null' could not be resolved. --->
Mono.Cecil.ResolutionException:
Failed to resolve System.Boolean Android.OS.BaseBundle::
GetBoolean(System.String,System.Boolean)
我已将MvvmCross.Droid.FullFragging.*
添加到linkerConfig.xml,但无济于事。
答案 0 :(得分:2)
我遇到了同样的问题。 MvvmCross dll是为Android版本v6.0构建的。我注意到以下输出选项卡(我的日志记录设置为详细)。
警告XA0105:MvvmCross.Binding.Droid.dll(v6.0)的$(TargetFrameworkVersion)大于项目的$(TargetFrameworkVersion)(v5.0)。
当我将项目更改为Android 6.0时,我仍然收到链接器错误。当我在文本编辑器中打开项目文件时,我注意到它被定义了两次。一旦在全局属性组中设置为6.0,并将一次在Debug属性组中设置为5.0。我从Debug属性组中删除了以下行,问题就消失了。
<TargetFrameworkVersion>v5.0</TargetFrameworkVersion>
答案 1 :(得分:1)
您需要做的是在构建中打开详细日志记录。对于iOS,通过添加:
指定详细日志记录-v -v -v -v
添加额外的构建参数文本框。然后再次运行构建。
For Android you can do this in the Visual Studio Tools -> Settings -> Xamarin -> Android settings -> Xamarin Diagnostics.
您可能会发现某些软件包具有不同的版本,并会导致此链接问题。
您可以使用详细日志记录找到有关此问题的一些线索。我只提到了这个平台的详细日志记录,因为它是我目前最常见的平台。
这是我能提供的最佳答案,因为这个问题可能是由真正大量的问题引起的,并且对每个解决方案都是个人的。