Monotouch 4:iPhone设备上的应用程序崩溃,可在模拟器上运行

时间:2012-01-02 15:52:35

标签: xamarin.ios

我的设置是:

  • MonoDevelop 2.8.5
  • MonoTouch 4.0.6
  • XCode 4.2

我创建了一个单视图iphone项目。构建它可以在模拟器和设备上运行。

现在我双击.xib文件,在XCode中添加Textfield并创建一个插座。没有其他代码。

在模拟器上运行此功能非常有效。在任何iPhone设备上运行它都会在启动时崩溃。我设法得到以下堆栈跟踪:

System.NullReferenceException: Object reference not set to an instance of an object
  at MonoDevelop.Debugger.ObjectValueTreeView.SetValues (TreeIter parent, TreeIter it, System.String name, Mono.Debugging.Client.ObjectValue val) [0x0000d] in /private/tmp/source/monodevelop/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs:640 
  at MonoDevelop.Debugger.ObjectValueTreeView.AppendValue (TreeIter parent, System.String name, Mono.Debugging.Client.ObjectValue val) [0x00034] in /private/tmp/source/monodevelop/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs:627 
  at MonoDevelop.Debugger.ObjectValueTreeView.Refresh () [0x00091] in /private/tmp/source/monodevelop/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs:468 
  at MonoDevelop.Debugger.ObjectValueTreeView.AddValue (Mono.Debugging.Client.ObjectValue value) [0x0000c] in /private/tmp/source/monodevelop/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs:416 
  at MonoDevelop.Debugger.ExceptionCaughtDialog.Fill () [0x00084] in /private/tmp/source/monodevelop/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs:82 
  at MonoDevelop.Debugger.ExceptionCaughtDialog.<HandleExceptionChanged>m__0 (System.Object , System.EventArgs ) [0x00000] in /private/tmp/source/monodevelop/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs:63 
  at Gtk.Application+InvokeCB.Invoke () [0x00000] in <filename unknown>:0 
  at GLib.Timeout+TimeoutProxy.Handler () [0x00000] in <filename unknown>:0 

有人提到MonotTouch 4仅适用于MonoDevelop 2.6。问题是我已经在MD 2.8.5中编写了很多代码,因为模拟器正在运行,当我回滚到MD 2.6时,项目将无法加载......

抱歉缺少格式,我是stackoverflow的新手

感谢任何帮助。
Themos

1 个答案:

答案 0 :(得分:2)

您在XIB文件中有一个插座未映射到C#中控制器中的属性。这就是精彩的class is not key value coding-compliant消息所表明的。 Here is a link

我建议您使用最新的MonoTouch / MonoDevelop(非测试版)和XCode,然后找到您所拥有的插座,看看哪一个没有正确连接。

如果XCode不能为您执行此操作,您可以手动设置它们,您可以为插座的属性添加一个简单的[Outlet]属性。查看*.designer.cs文件以获取示例。