Can';t运行MVVMcros Xamarin.Forms项目
我正在尝试使用Xamarin.Forms配置MVVMCross。所以我正在创建XF项目,为viewmodels添加另一个PCL项目。接下来,我将安装所需的MVVMCross Nuget,包括MVVMCross.StarterPack、MVVMCross.Forms和MVVMCross.Presentation。然后我在项目中清理自动创建的垃圾箱。到目前为止,一切都在建设中。但当我在构建时将XF MainPage.xaml ContentPage更改为MvxContentPage时,出现以下错误:Can';t运行MVVMcros Xamarin.Forms项目,xamarin,xamarin.forms,mvvmcross,Xamarin,Xamarin.forms,Mvvmcross,我正在尝试使用Xamarin.Forms配置MVVMCross。所以我正在创建XF项目,为viewmodels添加另一个PCL项目。接下来,我将安装所需的MVVMCross Nuget,包括MVVMCross.StarterPack、MVVMCross.Forms和MVVMCross.Presentation。然后我在项目中清理自动创建的垃圾箱。到目前为止,一切都在建设中。但当我在构建时将XF MainPage.xaml ContentPage更改为MvxContentPage时,出现以下错误:
The "ResolveLibraryProjectImports" task failed unexpectedly.
System.IO.FileNotFoundException: Could not load assembly 'StormFinder, Version=0.0.0.0, Culture=neutral, PublicKeyToken='. Perhaps it doesn't exist in the Mono for Android profile?
File name: 'StormFinder.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() StormFinder.Android
“ResolveLibraryProjectImports”任务意外失败。
System.IO.FileNotFoundException:无法加载程序集“StormFinder,版本=0.0.0.0,区域性=中性,PublicKeyToken=”。也许它不存在于Mono for Android配置文件中?
文件名:“StormFinder.dll”
位于Java.Interop.Tools.Cecil.directorySassemblyResolver.Resolve(AssemblyNameReference,ReaderParameters参数)
位于Java.Interop.Tools.Cecil.directorySassemblyResolver.Resolve(字符串全名,ReaderParameters参数)
位于Java.Interop.Tools.Cecil.directorySassemblyResolver.Resolve(字符串全名)
位于Java.Interop.Tools.Cecil.directorySassemblyResolver.GetAssembly(字符串文件名)
在Xamarin.Android.Tasks.ResolveLibraryProjectImports.Extract(目录汇编解析器res,ICollection`1 jars,ICollection`1 ResolvedResourceDirectory,ICollection`1 ResolvedAssetDirectory,ICollection`1 resolvedEnvironments)
在Xamarin.Android.Tasks.ResolveLibraryProjectImports.Execute()中
位于Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ItaskeExecutionHost.Execute()
在Microsoft.Build.BackEnd.TaskBuilder.d_u26.MoveNext()StormFinder.Android上
StormFinder是我的XFUI项目。我尝试了一切,包括清洁、重新安装XF、MVVMCross,甚至开始新项目
我能做什么?编辑: 项目可以在那里找到: 编辑2: xaml中的名称空间是错误的。项目正在建设中,但现在我遇到了另一个错误:
System.TypeLoadException: Parent class vtable failed to initialize, due to: Type MvvmCross.Forms.Presenter.Core.MvxFormsPagePresenter has invalid vtable method slot 7 with method MvvmCross.Core.Views.MvxViewPresenter:Close (MvvmCross.Core.ViewModels.IMvxViewModel) assembly:/storage/emulated/0/Android/data/StormFinder.Android/files/.__override__/MvvmCross.Forms.Presenter.Core.dll type:MvxFormsPagePresenter member:<none>
06-12 18:52:19.744 E/mono-rt ( 1784): [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Parent class vtable failed to initialize, due to: Type MvvmCross.Forms.Presenter.Core.MvxFormsPagePresenter has invalid vtable method slot 7 with method MvvmCross.Core.Views.MvxViewPresenter:Close (MvvmCross.Core.ViewModels.IMvxViewModel) assembly:/storage/emulated/0/Android/data/StormFinder.Android/files/.__override__/MvvmCross.Forms.Presenter.Core.dll type:MvxFormsPagePresenter member:<none>
System.TypeLoadException:父类vtable无法初始化,原因是:类型MvvmCross.Forms.Presenter.Core.MvxFormsPagePresenter具有无效的vtable方法插槽7,方法为MvvmCross.Core.Views.MvxViewPresenter:Close(MvvmCross.Core.ViewModels.IMvxViewModel)程序集:/storage/emulated/0/Android/data/StormFinder.Android/files/.\uuuu override.\uuuuu/MvvmCross.Forms.Presenter.Core.dll类型:MvxFormsPagePresenter成员:
06-12 18:52:19.744 E/mono rt(1784):[错误]未处理的致命异常:System.TypeLoadException:父类vtable未能初始化,原因是:类型MvvmCross.Forms.Presenter.Core.MvxFormsPagePresenter具有无效的vtable方法插槽7和方法MvvmCross.Core.Views.MvxViewPresenter:Close(MvvmCross.Core.ViewModels.IMvxViewModel)程序集:/storage/emulated/0/Android/data/StormFinder.Android/files/.\uuuu override.\uuuuu/MvvmCross.Forms.Presenter.Core.dll类型:MvxFormsPagePresenter成员:
您需要在主页
中包含MvxContentPage
的名称空间
它需要如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<core1:MvxContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:StormFinder"
xmlns:core="clr-namespace:MvvmCross.Forms.Presenter.Core;assembly=MvvmCross.Forms.Presenter.Core"
xmlns:core1="clr-namespace:MvvmCross.Forms.Core;assembly=MvvmCross.Forms"
x:Class="StormFinder.MainPage">
<Label Text="{Binding Text}"
VerticalOptions="Center"
HorizontalOptions="Center" />
<!-- core:MvxContentPage -->
</core1:MvxContentPage>
您的XF UI项目是PCL吗?还是共享?您是否从平台项目中引用了它?如果可以,请上载一个示例项目。这将有助于缩小问题的范围。@woelliJ我的XF是PCL,它被引用了。我把项目推到github。链接在帖子里。谢谢。现在正在建,但看看我帖子里的EDIT2。好吧,没关系。我把这个修好了。谢谢你的帮助。