我知道有相同标题的很多的SO问题,但它们似乎都完全不同。然而,标题描述了主要症状。
我有一个MonoTouch应用程序,它在模拟器中运行得很棒。甚至设备配置和应用程序签名过程也非常顺利。
但是,当应用程序在设备上运行时,它会立即崩溃。
我能够看到它在Application.cs
中崩溃(在UIApplication.Main(...)
行中):
using System;
using MonoTouch.UIKit;
namespace MyApp
{
public class Application
{
public static void Main (string[] args)
{
try
{
UIApplication.Main (args, null, "AppDelegate"); //CRASHES HERE!
}
catch (Exception e)
{
Console.WriteLine (e.ToString ());
}
}
}
}
通过发布消息来说明通用的内容:System.NullReferenceException: Object reference not set to an instance of an object
崩溃报告如下:
Application Specific Information:
com.testing.game failed to launch in time
Elapsed total CPU time (seconds): 3.140 (user 3.140, system 0.000), 16% CPU
Elapsed application CPU time (seconds): 1.616, 8% CPU
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0:
0 libsystem_kernel.dylib 0x321de068 __psynch_cvwait + 24
1 libsystem_c.dylib 0x36696f2e _pthread_cond_wait + 634
2 libsystem_c.dylib 0x36696caa pthread_cond_wait + 34
3 GameB 0x007b8954 suspend_current (debugger-agent.c:2375)
4 GameB 0x007bad30 process_event (debugger-agent.c:3013)
5 GameB 0x007bd69c process_breakpoint_inner (debugger-agent.c:3837)
6 GameB 0x007bd7f4 process_breakpoint (debugger-agent.c:3855)
7 ??? 0x014fdff8 0 + 22011896
8 GameB 0x004e3858 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr (mscorlib.dll.6.s:148399)
9 GameB 0x0077d7dc mono_jit_runtime_invoke (mini.c:5784)
10 GameB 0x00890eb0 mono_runtime_invoke (object.c:2757)
11 GameB 0x008940d0 mono_runtime_exec_main (object.c:3940)
12 GameB 0x0089309c mono_runtime_run_main (object.c:3562)
13 GameB 0x00788748 mono_jit_exec (driver.c:1102)
14 GameB 0x0077371c main (main.m:2505)
15 GameB 0x0006c978 start + 44
Thread 1 name: Dispatch queue: com.apple.libdispatch-manager
Thread 1:
0 libsystem_kernel.dylib 0x321ce3b4 kevent + 24
1 libdispatch.dylib 0x32922e78 _dispatch_mgr_invoke + 708
2 libdispatch.dylib 0x32922b96 _dispatch_mgr_thread + 30
Thread 2:
0 libsystem_kernel.dylib 0x321de470 __recvfrom + 20
1 libsystem_c.dylib 0x36693aa0 recv + 16
2 GameB 0x007b55c4 recv_length (debugger-agent.c:996)
3 GameB 0x007c8bfc debugger_thread (debugger-agent.c:7136)
4 GameB 0x009030d4 thread_start_routine (wthreads.c:287)
5 GameB 0x00943dc8 GC_start_routine (pthread_support.c:1468)
6 libsystem_c.dylib 0x36696c16 _pthread_start + 314
7 libsystem_c.dylib 0x36696ad0 thread_start + 0
Thread 3:
0 libsystem_kernel.dylib 0x321ce060 semaphore_wait_trap + 8
1 GameB 0x009152e8 mono_sem_wait (mono-semaphore.c:115)
2 GameB 0x0081d648 finalizer_thread (gc.c:1070)
3 GameB 0x008cec40 start_wrapper_internal (threads.c:783)
4 GameB 0x008ced48 start_wrapper (threads.c:831)
5 GameB 0x009030d4 thread_start_routine (wthreads.c:287)
6 GameB 0x00943dc8 GC_start_routine (pthread_support.c:1468)
7 libsystem_c.dylib 0x36696c16 _pthread_start + 314
8 libsystem_c.dylib 0x36696ad0 thread_start + 0
Thread 4 name: WebThread
Thread 4:
0 libsystem_kernel.dylib 0x321ce010 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x321ce206 mach_msg + 50
2 CoreFoundation 0x30ecd41c __CFRunLoopServiceMachPort + 120
3 CoreFoundation 0x30ecc154 __CFRunLoopRun + 876
4 CoreFoundation 0x30e4f4d6 CFRunLoopRunSpecific + 294
5 CoreFoundation 0x30e4f39e CFRunLoopRunInMode + 98
6 WebCore 0x376e3128 _ZL12RunWebThreadPv + 396
7 libsystem_c.dylib 0x36696c16 _pthread_start + 314
8 libsystem_c.dylib 0x36696ad0 thread_start + 0
Unknown thread crashed with unknown flavor: 5, state_count: 1
任何人都可以看到为什么这可能会崩溃??? 我完全失去了......
干杯, 布雷特
答案 0 :(得分:2)
崩溃报告与您的问题无关。
com.testing.game未能及时发布
以上意味着iOS看门狗杀死了应用程序,因为它花了太多时间启动(大约15秒)。
6 GameB 0x007bd7f4 process_breakpoint(debugger-agent.c:3855)
堆栈跟踪建议你在等断点。如果在 FinishedLaunching
之前发生这种情况,那么这可能就是看门狗杀死你的应用程序的原因(以及崩溃报告包含的内容)。
再次确保 iPhoneSimulator | Debug 和 iPhone | Debug 之间额外的mtouch参数相同。如果这仍然崩溃,那么运行
/Developer/MonoTouch/usr/bin/mtouch --logdev
从终端窗口并重新崩溃您的应用程序。将输出复制/粘贴到您的问题中。请注意,您应该同时使用调试和发布进行尝试,因为我怀疑后者更详细。