MonoTouch应用程序在Simulator中运行,但不在Device上运行

时间:2012-01-11 22:49:30

标签: c# ios crash xamarin.ios ios-simulator

我知道有相同标题的很多的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

任何人都可以看到为什么这可能会崩溃??? 我完全失去了......

干杯, 布雷特

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
从终端窗口

并重新崩溃您的应用程序。将输出复制/粘贴到您的问题中。请注意,您应该同时使用调试发布进行尝试,因为我怀疑后者更详细。