MVVM Cross支持Mac上的Xamarin Studio

Mat*_*hew 8 c# xamarin.android mvvmcross xamarin xamarin-studio

我一直在Mac上探索在Xamarin Studio上使用MVVM Cross.我已经在YouTube上浏览了N + 1天的MvvmCross教程,我遇到了一个障碍,希望其他人有经验.

这些教程使用PCL和VS 2012,但由于我在Mac上,我必须使用Xamarin Studio.我理解PCL在Xamarin Studio中不受支持,因此我创建了一个基础C#项目,然后将这些库链接到一个Xamarin.Android项目.我已经阅读了很多MvvmCross帖子,包括这个帖子,但还没有找到解决方案.

该项目成功构建并似乎成功部署到模拟器,但我无法让应用程序在模拟器上运行.应用程序立即关闭,我收到的唯一错误是Xamarin Studio的应用程序输出中的以下非描述性消息.

[monodroid-gc] GREF GC Threshold: 1800
[mono] Stacktrace:
[mono] 
[mono] 
[mono] Unhandled Exception:
[mono] System.NullReferenceException: Object reference not set to an instance of an object
[mono] [ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object
Run Code Online (Sandbox Code Playgroud)

我设置了多个断点,但无法触发它们,看起来错误发生在我的代码运行之前.我下载了项目的示例代码并且运行成功,然后我逐行检查错误但没有成功(我甚至用示例中的那些替换了我的类文件.我已经确认所有的DLL都是我正在使用https://github.com/slodge/MvvmCross-Binaries中的预编译库.

我真的不知道下一步该去哪里确定这个错误的原因.还有其他人经历过这个吗?我知道Xamarin和MvvmCross都专注于Visual Studio集成和PC开发; MvvmCross是否足够稳定,可以在Xamarin Studio上用于Mac?有谁知道我的错误可能是什么,或者接下来要尝试什么?

我知道这是一个相当不确定的问题,但我希望我不是唯一一个体验这个问题的人.我试图尽可能描述,但如果有人需要更多信息,请告诉我.谢谢.

Stu*_*art 5

还有其他人经历过这个吗?

没见过我.

我知道Xamarin和MvvmCross都专注于Visual Studio集成和PC开发

对于Xamarin来说绝对不是这样 - 实际上(在我看来)反之亦然 - 我认为它们首先在Mac上运行'Xamarin Studio',而Visual Studio支持第二.

对于MvvmCross,我通常首先使用Visual Studio - 这主要是因为我需要使用Windows项目类型(Wpf,WindowsPhone,WindowsStore),因为我更喜欢使用PCL,因为Resharper拥有我的编码灵魂.

MvvmCross是否足够稳定,可以在Xamarin Studio上用于Mac?

这对我来说太客观了.我可以告诉你很多Mac用户确实使用过它......并且没有人试过,然后转过身来告诉我MvvmCross不够稳定.

Xamarin PCL支持的情况正在发展 - 目前的支持似乎随着每个版本的变化而略有改变,并且很快就会有一个大的PCL版本即将发布.现在计划在任何一天 - 所以我绝对不能声称PCL情况目前是稳定的.

NuGet2.5支持也在发生变化 - 请参阅https://github.com/mrward/monodevelop-nuget-addin/issues/13 - 我不知道什么时候可以完全使用或者知道Mac上的PCL,但是至少努力已经开始.

注意:如果您愿意,那么您始终可以使用Xamarin项目类型并使用文件链接而不是PCL项目类型.仅仅因为MvvmCross在内部使用PCL并不意味着你必须这样做.

有谁知道我的错误可能是什么

我不知道你的错误是什么 - 这NullReferenceException不是最详细的错误:(你可能能够从logcat获得更多的跟踪?除此之外,Xamarin论坛或支持可能能够提供帮助.

接下来要尝试什么?

我在没有Nuget的情况下完全记录了今天的N + 1.

目前正在上传到:

这是我在Mac上使用MvvmCross和PCL开发第一个Android和iOS项目的"疣和全部"现场演示.显然,你可以看到一些问题,如Xamarin Studio intellisense和Android模拟器调试(注意这些调试器/模拟器问题独立于MvvmCross和PCL!)

我相信这也显示了今天在Mac上,Xamarin.iOS比xamarin.android更加mvvmcross/pcl友好 - 但两者都可以使用.

请注意,对于此演示,我使用https://github.com/slodge/mvvmCross-binaries/中 VS文件夹中的程序集