MonoTouch로 개발 한 iPhone 응용 프로그램에 문제가 있습니다.
WCF 서비스에 연결하는 응용 프로그램을 개발 중입니다. WCF 서비스가 응답하면 반환 된 데이터로 UITableView를 업데이트합니다.이 작업이 완료되면 새로운 WCF 비동기 호출이 전송되고 응답하면 다시 테이블에.iPhone 응용 프로그램이 Mprotect 오류 (MonoTouch)로 오류 발생
문제는 가변적 인 시간에이 작업을 수행하면 Mprotect failed 오류 12와 충돌한다는 것입니다. 이것은 응용 프로그램이 시뮬레이터가 아닌 전화에서 직접 실행될 때만 발생합니다.
나는 테이블의 업데이트가 발생하는 곳에서 주석을 작성하고 WCF 서비스에 다음 비동기 요청을 보내기 전에 Thread.Sleep (1000)을 작성하려고했지만 여전히 동일한 오류가 발생하지만 더 이상 실행하지는 못합니다. 실패.
나는 http://mydomain/myservice.svc
내 질문이이 오류가있는 방식으로 아니면 해결 방법으로 회피 할 수있다 SlSvcUtil.exe /에서 noconfig에 의해 생성 된 "프록시"파일을 통해 WCF 서비스에 문의? 내 잘못입니까, 아니면 벌레입니까? 실제로 최종 학교 프로젝트에서이 신청서를 사용하기 때문에 실제로 해결할 수 있으면 좋을 것입니다.
콘솔 출력을 게시하고 충돌 보고서의 일부를 게시하지만 더 많은 정보가 필요하면 알려 주시면 게시 해 드리겠습니다. 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
충돌 보고서 : 12 ENOMEM입니다
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
정말인가요? AppDelegate 클래스의 ReceiveMemoryWarning 메서드를 오버라이드했습니다. public override void ReceiveMemoryWarning (UIApplication 응용 프로그램) { Log.Error ("Memory warning", "memory"); } 하지만이 오류가 발생하지 않습니다 .. – user555866
예, 확실합니다. –
그래,이 문제를 피하기 위해 뭔가 할 수 있니? 아니면 더 많은 메모리가되도록 내 프로그램 코드를 변경해야합니다. 나는 내 프로그램이 너무 무거운 기억이 될 수 있다는 것을 알지 못한다. – user555866