2012-01-11 110 views
0

我知道有一个很多与这个相同的标题SO问题,但他们都显得非常不同。不过,标题描述了主要症状。MonoTouch应用程序运行在模拟器,但不是在设备上

我有一个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()); 
      } 
     } 
     } 
    } 

与闭锁outout指出一些通用的: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

请注明您正在使用的MonoTouch和MonoDevelop的版本。另外,如果您使用外部库,请确保** iPhoneSimulator | Debug **和** iPhone | Debug **之间的'额外mtouch参数'相同 – poupou 2012-01-11 23:06:40

+0

打开xcode并再次从xcode检查设备控制台,有时您可能会看到更多有用...在应用程序崩溃后... – dalexsoto 2012-01-11 23:44:54

回答

2

崩溃报告看起来无关您的问题。

com.testing.game未能及时

推出上述表示的iOS看门狗打死的应用,因为它占用了太多的时间来启动(15秒左右)。

6 GameB 0x007bd7f4 process_breakpoint(调试器agent.c:3855)

堆栈跟踪建议你等待一个断点。如果发生这种情况,之前FinishedLaunching返回,那么这可能是看门狗杀死你的应用程序(以及崩溃报告包含什么)的原因。

再次确保您的额外的mTouch参数iPhoneSimulator之间相同|调试iPhone |调试。如果这仍然崩溃然后运行

/Developer/MonoTouch/usr/bin/mtouch --logdev 

从终端窗口并重新崩溃您的应用程序。复制/粘贴输出到你的问题。请注意,您应该尝试使用调试版本,因为我怀疑后者更详细。

相关问题