运行MonoTouch应用程序时出现SIGABRT错误

时间:2010-04-08 13:22:28

标签: mono xamarin.ios monodevelop

我是MonoTouch的新用户,当我尝试在iPhone模拟器上运行我的MonoTouch应用程序(调试模式和常规)时,我会收到一个长错误输出,其中包含以下消息:

  

连接stdout和stderr时出错(127.0.0.1:10001)   无法使用引导服务器注册com.yourcompany。[appnamehere]。错误:未知的错误代码。   这通常意味着此进程的另一个实例已经在调试器中运行或挂起.Stacktrace:

     

at(wrapper managed-to-native)MonoTouch.UIKit.UIApplication.UIApplicationMain(int,string [],intptr,intptr)< 0x00004>     at(包装器托管到原生)MonoTouch.UIKit.UIApplication.UIApplicationMain(int,string [],intptr,intptr)< 0x00004>     在MonoTouch.UIKit.UIApplication.Main(string [],string,string)< 0x00089>     在MonoTouch.UIKit.UIApplication.Main(string [])< 0x00014>     在PodcastManager.Application.Main(string [])< 0x00010>     at(wrapper runtime-invoke).runtime_invoke_void_object(object,intptr,intptr,intptr)< 0x00043>

结束于:

  

=============================================== ==================

     

执行本机代码时获得了SIGABRT。这通常表示单声道运行时或应用程序使用的一个本机库中存在致命错误。

     

=============================================== ==================

奇怪的是它会在某些时候起作用。一次,我的机器重新启动它。其他人,只需重新启动MonoDevelop和/或模拟器。

如果您认为可能有帮助,我可以提供整个错误输出。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

这是monotouch调试器的问题。有时,当应用程序崩溃时,调试器会挂起内存,这会阻止您再次运行应用程序。正如您所说,有时关闭MonoDevelop和模拟器足以清理调试器,有时您需要完全重启。这也是我的经验,这可能是迄今为止我发现的单调的唯一坏处。

很多时候,我可以直接从控制台终止进程。为此,请打开控制台并键入“top”。您将看到使用最多内存的进程列表,您的应用程序可能会占据最高位置,使用几乎100%的CPU。保存该行的id,然后键入q退出。现在输入“kill -9 ???”哪里???是你从顶部得到的身份。

Monotouch 2.0解决了很多这些问题,如果你还没有更新,我会认真地建议你这样做。我正在运行2.0的beta频道,而且它的稳定性很高。崩溃从每小时1或2降至每天1或2。不幸的是,它仍然会发生。

答案 1 :(得分:1)

- 更新 - 更新到2.0.2后我没有看到这个问题。

玩了足够长的时间,然后遇到this错误报告我得出结论直到它被修复防止此错误的方法是永远不要停止调试IDE中的会话。只要你通过点击主页按钮在代码不在断点时停止调试会话,就会出现这种情况。

答案 2 :(得分:0)

我认为当缺少任何本机单元素库时会出现此错误。它是由于卸载Visual Studio或Update Xamarin而发生的。我遇到了同样的错误并由Unistalland解决它重新安装Xamarin Visual Studio和Xamarin Studio。这需要10分钟,所有问题都解决了。