簡體   English   中英

Monotouch App不會在Device上啟動,但在Simulator中工作正常

[英]Monotouch App will not launch on Device but works fine in Simulator

我有一個iPad應用程序,我一直在模擬器上開發很好(xcode 4,md 2.8,mt 5)。 但是,當我嘗試部署到設備時,應用程序在啟動時崩潰。 xcode中沒有崩潰日志,並且控制台窗口未顯示任何錯誤。

但是,當我從終端運行monotouch時,我得到以下輸出:

Rich-MacBook-Pro:~rich3 $ / Developer / MonoTouch / usr / bin / mtouch --debugsim = $ / private / var / mobile / Applications / 31A80564-0CEF-4F4B-AE9D-6A1938510393指定的SDK無效:3.2 Stacktrace:

在(包裝由本機管理的)MonoTouch.ObjCRuntime.Messaging.void_objc_msgSend_intptr_intptr_bool(intptr,intptr,intptr,intptr,bool)<0xffffffff>在MonoTouch.Foundation.NSObject.Dispose(bool)<0x0009f> .Finalize()<0x00016>在(包裝器運行時調用)object.runtime_invoke_virtual_void_ _(對象,IntPtr的,IntPtr的,IntPtr的)<0xffffffff的>

本機堆棧跟蹤:

    0   mtouch                              0x000ec183 WriteZStream + 955779 
    1   mtouch                              0x0001bd4f WriteZStream + 102735 
    2   libsystem_c.dylib                   0x9020459b _sigtramp + 43 
    3   ???                                 0xffffffff 0x0 + 4294967295 
    4   Foundation                          0x9a0603de -[NSObject(NSThreadPerformAdditions) performSelectorOnMainThread:withObject:waitUntilDone:] + 160 
    5   ???                                 0x027d5884 0x0 + 41769092 
    6   ???                                 0x027d0e40 0x0 + 41750080 
    7   ???                                 0x027d559f 0x0 + 41768351 
    8   ???                                 0x025e5551 0x0 + 39736657 
    9   mtouch                              0x001a76c4 WriteZStream + 1723076 
    10  mtouch                              0x001a968a WriteZStream + 1731210 
    11  mtouch                              0x001a98c4 WriteZStream + 1731780 
    12  mtouch                              0x002735c1 WriteZStream + 2558401 
    13  mtouch                              0x00273677 WriteZStream + 2558583 
    14  mtouch                              0x002b8b0e WriteZStream + 2842382 
    15  mtouch                              0x002f31d8 WriteZStream + 3081688 
    16  libsystem_c.dylib                   0x901aced9 _pthread_start + 335 
    17  libsystem_c.dylib                   0x901b06de thread_start + 34 

來自gdb的調試信息:

/tmp/mono-gdb-commands.1eukTW:1: Error in sourced command file: 
unable to debug self 

================================================================= 
Got a SIGSEGV while executing native code. This usually indicates 
a fatal error in the mono runtime or one of the native libraries 
used by your application. 
================================================================= 

Abort trap: 6

更新:我終於把我的問題釘在了兩件事上。

  1. 使用AOT時,泛型和值類型不能很好地協同工作(並且需要在iOS設備上執行)。 因此,我需要更改查詢:從:'CSDatabase.RunQuery(“從schema_version中選擇max(VersionNbr)”)。FirstOrDefault();' To:CSDatabase.RunQuery(“從schema_version中選擇max(VersionNbr)”。)First();

  2. 接下來,我需要為蹦床添加參數(-aot“ nimt-trampolines = 2048”),並且在構建過程中僅鏈接monotouch sdk。 這解決了我其余的問題。

這里有兩個問題。

第二個看起來是由於: 指定的SDK無效:3.2

只是您沒有安裝3.2 SDK(iOS5 SDK默認未附帶)。 請嘗試以下命令:

/Developer/MonoTouch/usr/bin/mtouch --debugsim=/path/to/your.app --sdk=5.0

它應該工作正常。

至於第一個問題,沒有太多細節可以幫助您。 如果沒有產生故障轉儲 (例如在沒有足夠的可用內存時發生),請嘗試以下操作:

a)打開計算機上的終端窗口;

b)執行以下命令

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

c)在設備上啟動應用程序;

d)使其崩潰(在這種情況下,似乎是自動的;-)

e)將設備日志復制/粘貼到您的問題中(如果很小),或者在http://bugzilla.xamarin.com上填寫錯誤報告(如果很大)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM