Ich habe ein Problem mit meiner iPhone-Anwendung mit MonoTouch entwickelt.
Ich entwickle eine Anwendung, die einen WCF-Dienst kontaktiert, und wenn der WCF-Dienst antwortet, aktualisiere ich ein UITableView mit den zurückgegebenen Daten, wenn dies erledigt ist, sendet es einen neuen WCF-Async-Aufruf, und wenn es antwortet, aktualisiert es Tisch wieder und so weiter.iPhone-Anwendung stürzt mit Mprotect fehlgeschlagen Fehler (MonoTouch)
Das Problem ist, dass wenn es dies in einer variablen Zeit getan hat, es mit einem Mprotect fehlgeschlagen Fehler 12 abstürzt. Dies geschieht nur, wenn die Anwendung direkt auf dem Telefon und nicht im Simulator ausgeführt wird.
Ich habe versucht zu kommentieren, wo die Aktualisierung der Tabelle passiert, und ein Thread.Sleep (1000) vor dem Senden der nächsten Async-Anfrage an den WCF-Dienst, aber immer noch den gleichen Fehler, kann aber länger ohne aus Versagen.
ich Kontakt mit dem WCF-Dienst durch die „Proxy“ Dateien, die durch SlSvcUtil.exe/noconfig http://mydomain/myservice.svc
Meine Frage, dass dieser Fehler ist, kann in einer Art und Weise zu vermeiden oder vielleicht mit einem Problem zu umgehen? Ist es meine Schuld, oder ist es ein Fehler? Es ist tatsächlich, weil ich die Anwendung in meinem abschließenden Schulprojekt verwenden werde, also könnte es nett sein, wenn ich es beheben könnte.
Ich poste die Konsolenausgabe und einen Teil aus dem Absturzbericht, aber wenn Sie mehr Informationen benötigen, bitte sagen Sie mir, und ich werde es veröffentlichen. Ich bin kein Profi, um Mono oder die MonoTouch-Umgebung zu verwenden, es ist mein erstes Mal, also wären detaillierte Antworten schön.
Console Ausgabe:
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
Crash-Bericht:
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
Sind Sie sicher? Ich habe die Methode ReceiveMemoryWarning in AppDelegate übergangen Klasse: öffentliche Überschreibung void ReceiveMemoryWarning (UIApplication-Anwendung) { Log.Error ("Speicher Warnung", "Speicher"); } Aber ich bekomme nie diesen Fehler .. – user555866
Ja bin ich sicher. –
Okay, kann ich etwas tun, um dieses Problem zu vermeiden? Oder sollte ich nur meinen Programmcode ändern, um mehr Speicherlicht zu sein. Ich kann einfach nicht verstehen, dass mein Programm so speicherintensiv sein kann. – user555866