MonoTouch应用程序运行在模拟器,但不是在设备上
问题描述:
我知道有一个很多与这个相同的标题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
任何人都可以看到为什么这可能会崩溃吗? 我在一个总损失...
干杯, 布雷特
答
崩溃报告看起来无关您的问题。
com.testing.game未能及时
推出上述表示的iOS看门狗打死的应用,因为它占用了太多的时间来启动(15秒左右)。
6 GameB 0x007bd7f4 process_breakpoint(调试器agent.c:3855)
堆栈跟踪建议你等待一个断点。如果发生这种情况,之前FinishedLaunching
返回,那么这可能是看门狗杀死你的应用程序(以及崩溃报告包含什么)的原因。
再次确保您的额外的mTouch参数是iPhoneSimulator之间相同|调试和iPhone |调试。如果这仍然崩溃然后运行
/Developer/MonoTouch/usr/bin/mtouch --logdev
从终端窗口并重新崩溃您的应用程序。复制/粘贴输出到你的问题。请注意,您应该尝试使用调试和版本,因为我怀疑后者更详细。
请注明您正在使用的MonoTouch和MonoDevelop的版本。另外,如果您使用外部库,请确保** iPhoneSimulator | Debug **和** iPhone | Debug **之间的'额外mtouch参数'相同 – poupou 2012-01-11 23:06:40
打开xcode并再次从xcode检查设备控制台,有时您可能会看到更多有用...在应用程序崩溃后... – dalexsoto 2012-01-11 23:44:54