由于 iOS 中未捕获的异常,架构 i386 和终止应用程序的未定义符号

Posted

技术标签:

【中文标题】由于 iOS 中未捕获的异常,架构 i386 和终止应用程序的未定义符号【英文标题】:Undefined symbols for architecture i386 and Terminating app due to uncaught exception in iOS 【发布时间】:2013-04-09 07:55:56 【问题描述】:

我正在尝试开发 1 个有电话差距的应用。 当我尝试为 ios 使用插件 extractzipfile 时,它​​会抛出此错误:

Undefined symbols for architecture i386:
"_main", referenced from:
    start in crt1.o
  ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

然后我搜索问题并找到 1:“将 main.m 添加到编译器短语的编译器源中”。

并且上面的这个错误是固定的。但它抛出了一个异常:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Unable to instantiate the UIApplication delegate instance. No class named AppDelegate is loaded.'

我正在使用 phonegap 2.5.0 和 Xcode 4.6.1,使用 iPhone 模拟器 6.1

请帮帮我!我是新手和傻瓜!

感谢阅读!

【问题讨论】:

“未定义符号”错误通常意味着您缺少文件。异常证实了这一点,您缺少 AppDelegate 类。您的项目是否有 AppDelegate.h 和 AppDelegate.m 文件? 感谢您的回复!我有 2 个那个文件。 好的,那么由于某种原因,应用程序启动时没有加载 AppDelegate。你能发布你的 main.m 文件吗? 我正在尝试在编译器源代码中添加一些东西,现在出现了新错误,我在这里发布我的问题:***.com/questions/15897702/… 请帮助我 【参考方案1】:

如果你突然出现这种情况,这通常意味着项目缺少一些它需要的框架。库和相关项目可能需要框架,因此如果您最近添加了框架,则可能会导致此错误。

要添加框架,请在项目视图中右键单击项目名称,选择添加,然后从列表中选择现有框架...。然后找到您缺少的符号的框架。

至于如何找到所需的框架,我发现使用 google 是最简单的,尽管您也可以使用 Xcode 帮助搜索。搜索其中一个符号,尽力找出未损坏的名称,然后您在 developer.apple.com 找到的第一个文档链接通常是正确的。你通常不必狩猎很远。在这种情况下,就是这个页面:

然后继续这样做直到它起作用......

【讨论】:

以上是关于由于 iOS 中未捕获的异常,架构 i386 和终止应用程序的未定义符号的主要内容,如果未能解决你的问题,请参考以下文章

架构 i386 的未定义符号 - Lipo 错误?

来自第 3 方静态库的回调中未捕获的异常

ASP.NET:在 global.asax 中未捕获安全异常

C# 截获某个域中未捕获的异常

在父方法中未捕获C#事件异常

Tomcat 中未捕获的异常打印到 localhost.[date].log 而不是 catalina.out