Приложение MonoTouch работает в симуляторе, но не на устройстве - PullRequest
0 голосов
/ 12 января 2012

Я знаю, что есть много 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 Ответ

2 голосов
/ 12 января 2012

Отчет о сбое не имеет отношения к вашей проблеме.

com.testing.game не удалось запустить вовремя

Вышеуказанное означает, что сторожевой таймер iOS убил приложение, поскольку для его запуска потребовалось слишком много времени (около 15 секунд).

6 GameB 0x007bd7f4 process_breakpoint (debugger-agent.c: 3855)

Трассировка стека указывает на то, что вы ждали точки останова. Если это происходит за до того, как FinishedLaunching вернется, то это, вероятно, причина, по которой сторожевой таймер убивает ваше приложение (и что содержит отчет о сбое).

Снова убедитесь, что ваши дополнительные аргументы mtouch идентичны между iPhoneSimulator | Debug и iPhone | Debug . Если это не помогло, запустите

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

из окна терминала и перезапустите приложение. Скопируйте / вставьте вывод в ваш вопрос. Обратите внимание, что вы должны попробовать его как с Debug , так и с Release , так как я подозреваю, что более поздняя версия более многословна.

...