Monotouch默认应用程序在模拟器中运行但在设备上崩溃

时间:2012-05-31 06:20:39

标签: mono xamarin.ios ios-simulator

我已经尝试过MT与模拟器,并决定购买它与加入开发计划。程序似乎可以在模拟器上运行,但在部署到我的(最新型号运行5.1)iPad时会立即崩溃。这是在做任何事之前!例如,如果我创建一个新的ipad“实用程序”解决方案或“单一视图”应用程序,则不会从生成的默认值中更改任何内容并在模拟器上运行它,它会运行。然后我将它部署到设备,它安装但在运行时立即崩溃。

报告的错误是:

MonoTouch.Foundation.MonoTouchException: Objective-C exception thrown.  Name: NSUnknownKeyException Reason: [<UIApplication 0x658ee0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key view. 
  at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x00042] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:29 
  at Utility.Application.Main (System.String[] args) [0x00000] in /Users/Mark/Projects/Utility/Utility/Main.cs:17 

main.cs中的第17行是: UIApplication.Main(args,null,“AppDelegate”); “使用”等都存在(这是MT iPad'实用程序'解决方案未经修改)。我在Lion下运行我认为最新的xcode(没有dev预览或任何东西)和monotouch版本。

为什么默认(但功能性)的应用会像这样崩溃?此跟踪信息是否写入文件?我试过的另一个应用程序(示例'摇我'GL绘图应用程序)在设备上正确运行。

我在这里看到另一个问题:Monotouch 4: App crash on launch on iPhone device, works on simulator最终成为monotouch中的一个错误,但我有最新版本。

感谢您的帮助,真的很感激。

标记

3 个答案:

答案 0 :(得分:7)

之前我个人见过这个错误的地方是:

http://support.xamarin.com/customer/portal/articles/135125-this-class-is-not-key-value-coding-compliant-for-the-key-xxxx

  

在代码中初始化ViewController但从XIB文件初始化ViewController时会发生此错误。

     

如果您将“主界面”值设置为您在代码中创建的ViewController,则可能会发生这种情况。要解决此问题,请将此值设为空,然后不会自动初始化ViewController。

您可以检查您的pInfo文件以查看是否设置了MainInterface?

如果这是默认项目模板中的错误,请同时提交http://bugzilla.xamarin.com/enter_bug.cgi

报告

答案 1 :(得分:0)

如果您没有至少MonoTouch 5.2.4版本并且在代码中写入控制台,则需要更新以解决崩溃问题。

答案 2 :(得分:0)

在我的情况下,问题是当使用Storyboard构建时,我找到了修复它的方法:

右键单击您的项目,在“Build”子标题下选择“Options”,然后选择“iOS Build”,将-f添加到“Additional mtouch arguments”并重建。

这个解决方案不是我的,谢谢Richard Adams,在这里: https://stackoverflow.com/a/17583923/1600491