调试 Xamarin C# iOS 应用程序时抛出 Objective_C 异常

Posted

技术标签:

【中文标题】调试 Xamarin C# iOS 应用程序时抛出 Objective_C 异常【英文标题】:Objective_C Exception Thrown when debugging Xamarin C# iOS App 【发布时间】:2017-07-21 00:39:00 【问题描述】:

当我去构建和调试我的 ios 应用程序时,模拟器运行但我得到一个异常抛出并且模拟器没有打开。我正在使用 Visual Studio for Mac。

错误是:

Objective-C exception thrown.Name: NSInvalidArgumentException Reason:  
Could not find a storyboard named 'Main' in bundle NSBundle 
</Users/(Username 
here)/Library/Developer/CoreSimulator/Devices/23E98CA3-FC40-4AA4-8AAD-
62A9FADE1118/data/Containers/Bundle/Application/715B09C7-FBF2-41E6-
8FCD-A6329DE9E758/(AppName Here).app> (loaded)
Native stack trace:
    0   CoreFoundation                      0x0000000108f31b0b
__exceptionPreprocess + 171
    1   libobjc.A.dylib                     0x0000000113b0e141 
objc_exception_throw + 48
    2   UIKit                               0x000000010d005cfb +
[UIStoryboard storyboardWithName:bundle:] + 663
    3   UIKit                               0x000000010c84590d -
[UIApplication _loadMainStoryboardFileNamed:bundle:] + 72
    4   UIKit                               0x000000010c845e13 -
[UIApplication _loadMainInterfaceFile] + 260
    5   UIKit                               0x000000010c8444b6 -
[UIApplication _runWithMainScene:transitionContext:completion:] + 1407
    6   UIKit                               0x000000010c8417f3 -
[UIApplication workspaceDidEndTransaction:] + 182
    7   FrontBoardServices                  0x00000001168265f6 
__FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 24
    8   FrontBoardServices                  0x000000011682646d -
[FBSSerialQueue _performNext] + 186
    9   FrontBoardServices                  0x00000001168267f6 -
[FBSSerialQueue _performNextFromRunLoopSource] + 45
    10  CoreFoundation                      0x0000000108ed7c01 
__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    11  CoreFoundation                      0x0000000108ebd0cf 
__CFRunLoopDoSources0 + 527
    12  CoreFoundation                      0x0000000108ebc5ff 
__CFRunLoopRun + 911
    13  CoreFoundation                      0x0000000108ebc016 
CFRunLoopRunSpecific + 406
    14  UIKit                               0x000000010c84008f -
[UIApplication _run] + 468
    15  UIKit                               0x000000010c846134 
UIApplicationMain + 159
    16  ???                                 0x000000012bee336c 0x0 + 
5031998316
    17  ???                                 0x0000000128fc6abd 0x0 + 
4982598333

谢谢, Z

编辑:

添加图片。

Info.plist

【问题讨论】:

【参考方案1】:

您的项目中似乎找不到 main.storyboard。 检查这个

如果 Main Interface 是 Main ,请检查 main.storyboard 是否存在于您的项目中。 或者您可以将其更改为其他 viewController。

【讨论】:

您好,感谢您提供的信息。我检查了 Main 是我的主界面,我的项目中有一个 main.storyboard,这就是它如此奇怪的原因。我将编辑我的帖子以包含图片。谢谢! 尝试新建一个storyboard并将其设置为主界面,看看问题是否仍然存在 我添加了一个新的故事板并将其设置为 main,现在我得到了同样的错误,但它列出了新板的名称。 :// 如果新项目出现这个错误,可能是安装有问题,重新安装试试。 是的,我创建了新项目并收到此错误。我认为这与 XCode 有关,所以我重新安装了它。我将重新安装 Visual Studio 并报告。谢谢。【参考方案2】:

好的,最奇怪的事情解决了它。我安装了从该页面获得的旧版 Xarmarin iOS:https://bugzilla.xamarin.com/show_bug.cgi?id=38206

然后,当我打开 Visual Studio 时,它没有检测到它并让我更新它。更新后,我的应用程序能够调试并且模拟器运行良好!非常非常诡异!

【讨论】:

以上是关于调试 Xamarin C# iOS 应用程序时抛出 Objective_C 异常的主要内容,如果未能解决你的问题,请参考以下文章

C# HttpClient.SendAsync 在测试某些 URL 时抛出“发送请求时发生错误”异常

Blazor Hybrid ElementReferenceJsonConverter 仅在调试时抛出异常

ListView 在 ScrollTo 时抛出 UnhandledException

C# HttpClient 在没有成功状态代码时抛出异常 [关闭]

如果在提交时抛出异常,C# TransactionScope 会回滚吗?

C# char.isupper 在将数字放入字符串索引时抛出错误 [关闭]