2010-12-28 6 views
2

У меня проблема с моим приложением iPhone, разработанным с помощью MonoTouch.
Я разрабатываю приложение, которое связывается с сервисом WCF, и когда служба WCF возвращает ответ, я обновляю UITableView с возвращенными данными, когда это делается, он отправляет новый вызов асинхронного вызова WCF, и когда он отвечает на него, он обновляет таблицу снова и так далее.Сбой приложения iPhone с ошибкой ошибки Mprotect (MonoTouch)

Проблема заключается в том, что, когда это было сделано за переменное время, оно выходит из строя с ошибкой ошибки Mprotect 12. Это происходит только тогда, когда приложение работает непосредственно на телефоне, а не в симуляторе.

Я попытался оставить комментарий, где происходит обновление таблицы, и сделать Thread.Sleep (1000) перед отправкой следующего запроса Async в службу WCF, но все равно та же ошибка, но может работать дольше с выходом терпит неудачу.

связаться с службы WCF через файлы «прокси», порожденных SlSvcUtil.exe/noConfig http://mydomain/myservice.svc

Мой вопрос заключается в том, что это может быть ошибка избежать в пути, или, возможно, с обходной путь? Это моя вина, или это ошибка? Это на самом деле потому, что я буду использовать приложение в своем финальном школьном проекте, поэтому было бы неплохо, если бы я смог его исправить.

Я отправляю вывод консоли и часть из отчета о сбое, но если вам нужна дополнительная информация, пожалуйста, сообщите мне, и я отправлю его. Я не профессионал для использования Mono или среды MonoTouch, это мой первый раз, поэтому подробные ответы были бы приятными.

Консоль вывода:

Mon Dec 27 20:37:17 tests-iPhone UIKitApplication:dk.test.iphone[0x1c3c][625] <Notice>: Mprotect failed at 0xa09a000 (length 1052672) with errno 12 

Mon Dec 27 20:37:17 tests-iPhone UIKitApplication:dk.test.iphone[0x1c3c][625] <Notice>: Stacktrace: 

Mon Dec 27 20:37:17 tests-iPhone UIKitApplication:dk.test.iphone[0x1c3c][625] <Notice>: at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication.UIApplicationMain (int,string[],intptr,intptr) <0xffffffff> 

Mon Dec 27 20:37:17 tests-iPhone UIKitApplication:dk.test.iphone[0x1c3c][625] <Notice>: at MonoTouch.UIKit.UIApplication.Main (string[],string,string) <0x000e0> 

Mon Dec 27 20:37:17 tests-iPhone UIKitApplication:dk.test.iphone[0x1c3c][625] <Notice>: at MonoTouch.UIKit.UIApplication.Main (string[]) <0x00023> 

Mon Dec 27 20:37:17 tests-iPhone UIKitApplication:dk.test.iphone[0x1c3c][625] <Notice>: at iPhoneStdView.Application.Main (string[]) <0x0001b> 

Mon Dec 27 20:37:17 tests-iPhone UIKitApplication:dk.test.iphone[0x1c3c][625] <Notice>: at (wrapper runtime-invoke) object.runtime_invoke_dynamic (intptr,intptr,intptr,intptr) <0x000c3> 

Mon Dec 27 20:37:17 tests-iPhone UIKitApplication:dk.test.iphone[0x1c3c][625] <Notice>: Native stacktrace: 

Mon Dec 27 20:37:18 tests-iPhone ReportCrash[635] <Notice>: Formulating crash report for process iPhoneNoNavigation[625] 

Mon Dec 27 20:37:18 tests-iPhone com.apple.launchd[1] (UIKitApplication:dk.test.iphone[0x1c3c][625]) <Warning>: (UIKitApplication:dk.test.iphone[0x1c3c]) Job appears to have crashed: Abort trap 

Mon Dec 27 20:37:18 tests-iPhone SpringBoard[27] <Warning>: Application 'iPhoneStdView' exited abnormally with signal 6: Abort trap 

Краш доклад:

Thread 0 Crashed: 
0 dyld       0x2fe08110 0x2fe00000 + 33040 
1 libSystem.B.dylib    0x3020259e 0x301ff000 + 13726 
2 libSystem.B.dylib    0x302531da 0x301ff000 + 344538 
3 iPhoneNoNavigation    0x0051975c 0x1000 + 5343068 
4 iPhoneNoNavigation    0x00538080 0x1000 + 5468288 
5 libSystem.B.dylib    0x302765cc 0x301ff000 + 488908 
6 libSystem.B.dylib    0x30201d64 0x301ff000 + 11620 
7 CoreFoundation     0x3081fc38 0x307f8000 + 162872 
8 CoreFoundation     0x3081f4c2 0x307f8000 + 160962 
9 CoreFoundation     0x3081f270 0x307f8000 + 160368 
10 CoreFoundation     0x3081f178 0x307f8000 + 160120 
11 GraphicsServices    0x31e445ec 0x31e40000 + 17900 
12 GraphicsServices    0x31e44698 0x31e40000 + 18072 
13 UIKit       0x31e5111c 0x31e4d000 + 16668 
14 UIKit       0x31e4f128 0x31e4d000 + 8488 
15 iPhoneNoNavigation    0x0006e754 0x1000 + 448340 

Thread 0 crashed with ARM Thread State: 
    r0: 0x35f4d17c r1: 0x302765a9  r2: 0x35989b04  r3: 0x0000000e 
    r4: 0x2fe29e78 r5: 0x07d17490  r6: 0x302765d3  r7: 0x2fffe24c 
    r8: 0x00000000 r9: 0x3598762c  r10: 0x0000000d  r11: 0x07d17470 
    ip: 0x3598762c sp: 0x2fffe240  lr: 0x3e08dc60  pc: 0x2fe08110 
    cpsr: 0x20000030 

ответ

7

Ошибка 12 является ENOMEM, вы исчерпали всю память доступную на Iphone.

+0

Уверены ли вы? У меня есть метод Override метод ReceiveMemoryWarning в AppDelegate Класс: public override void ReceiveMemoryWarning (приложение UIApplication) { Log.Error («Предупреждение о памяти», «память»); } Но я никогда не получаю эту ошибку. – user555866

+0

Да, я уверен. –

+0

Хорошо, могу ли я сделать что-то, чтобы избежать этой проблемы? Или я должен просто изменить свой программный код, чтобы быть больше света в памяти. Я просто не могу понять, что моя программа может быть такой большой. – user555866