2012-01-02 74 views
2

我的设置是:MonoTouch的4:在iPhone设备上启动应用程序崩溃,适用于模拟器

  • 的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时,项目将无法加载...

抱歉缺少格式设置,I新的在计算器中

任何帮助表示赞赏。
Themos

+0

这是另一个iPhone的堆栈跟踪: 抛出了Objective-C异常。名称:NSUnknownKeyException原因:[ setValue:forUndefinedKey:]:此类不是密钥xxx的密钥值编码。 – 2012-01-02 16:41:12

回答

2

您在XIB文件中没有映射到C#中的控制器中的属性。这就是美妙的class is not key value coding-compliant消息所指示的。 Here is a link

我会建议您获取最新的MonoTouch/MonoDevelop(非beta版)和XCode,然后找到您拥有的插座并查看哪个插座没有正确连接。

如果XCode不会为你做这件事,你可以手动设置它们,你有一个简单的属性你放在网点的属性。例如,查看*.designer.cs文件。

+0

感谢Jonathan的反馈。但我不认为这是事实。我使用的是单视图iPhone项目,我所做的只是激发XCode,在视图上拖动文本框,然后按住Ctrl拖动创建小窗口,保存并返回到MD。 现在我所拥有的是一个视图,中间有一个文本框,它在模拟器中正确运行,但是在实际设备上立即崩溃。 designer.cs文件只有这个:[Outlet] \t \t MonoTouch.UIKit.UITextField testTextfield {get;组; } 任何反馈赞赏。 – 2012-01-02 21:49:27

+0

我想大多数人都需要更多的信息来帮助。在你的'static void Main'方法中加入一个try-catch,并挂接到AppDomain.UnhandledException事件中,将任何异常写入控制台。然后创建崩溃,同时在XCode的组织者中观看控制台,我认为你可以发布更好的堆栈跟踪。 – jonathanpeppers 2012-01-03 02:06:53

+0

Xamarin支持非常友好,可以向我发送MT 4.0.7的链接。我认为这是MT 4.0.6的问题。作为问题描述接受的答案通常是指你提到的那个问题。 – 2012-01-03 10:30:01

相关问题