우리의 iPad-App에서는 하나의 도메인에서 hml5- 비디오로 다른 사이트를로드하기 위해 UIWebView를 사용하고 있습니다. 동영상이없는 사이트는 완벽하게로드됩니다. 하지만 htmlt5- 비디오가 포함 된 사이트를로드 할 때 가끔 내 앱 이 (가) EXC_BAD_ACCESS가있는 UIWebView로드 프로세스 중에 충돌하며 때로는 그렇지 않습니다. 이러한 충돌이 발생할 때마다 비디오 플레이어가 사이트에 추가되는 시점에 발생하는 것으로 보입니다.UIWebView 로딩 html5- 비디오 EXC_BAD_ACCESS 충돌
Apple에서 UICatalog-Example을 다운로드했고 WebViewController-Class의 Default-URL을 html5- 비디오가있는 사이트의 URL로 변경했습니다. 같은 결과가 때때로 충돌하는 경우도 있습니다.
또한 Xcode (iPad 용보기 기반 응용 프로그램)에서 새 프로젝트를 만들고 새 프로젝트 ViewController에만 UIWebView를 추가했습니다. 다시 ... html5- 비디오가 포함 된 사이트를로드하면 가끔씩 충돌이 발생하는 경우가 있습니다. "NEW PROJECTS"의 ViewController (IMPLEMENTATION) FROM
CODE :
@interface WebViewTestViewController : UIViewController <UIWebViewDelegate> {
UIWebView *myWebView;
}
@property (nonatomic, retain) UIWebView *myWebView;
기기 로그 :
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000098
Crashed Thread: 0
Thread 0 Crashed:
0 WebCore 0x34c7d09e WebCore::RenderLayer::clippingRoot() const + 110
1 WebCore 0x34c7cf2a WebCore::RenderLayer::childrenClipRect() const + 26
2 WebCore 0x34c7ce0c WebCore::RenderWidget::setWidgetGeometry(WebCore::IntRect const&) + 40
3 WebCore 0x34c5e0f8 WebCore::RenderWidget::updateWidgetPosition() + 320
4 WebCore 0x34ba0170 WebCore::RenderView::updateWidgetPositions() + 144
5 WebCore 0x34b97d16 WebCore::FrameView::performPostLayoutTasks() + 202
6 WebCore 0x34b8a6c0 WebCore::FrameView::layout(bool) + 2116
7 WebCore 0x34bc5244 WebCore::FrameView::forceLayout(bool) + 4
8 WebKit 0x302c0c24 -[WebHTMLView layoutToMinimumPageWidth:height:maximumPageWidth:adjustingViewSize:] + 136
9 WebKit 0x302c0b8e -[WebHTMLView layout] + 18
10 WebKit 0x302c26f2 -[WebHTMLView(WebInternal) _layoutIfNeeded] + 50
11 WebKit 0x302c2622 -[WebHTMLView(WebInternal) _web_layoutIfNeededRecursive] + 14
12 WebKit 0x302c251e -[WebHTMLView(WebPrivate) viewWillDraw] + 50
13 CoreFoundation 0x3581dfc0 -[NSObject(NSObject) performSelector:] + 12
14 CoreFoundation 0x35826d4a -[NSArray makeObjectsPerformSelector:] + 382
15 WebCore 0x34bb000c -[WAKView viewWillDraw] + 24
16 CoreFoundation 0x3581dfc0 -[NSObject(NSObject) performSelector:] + 12
17 CoreFoundation 0x35826d4a -[NSArray makeObjectsPerformSelector:] + 382
18 WebCore 0x34bb000c -[WAKView viewWillDraw] + 24
19 CoreFoundation 0x3581dfc0 -[NSObject(NSObject) performSelector:] + 12
20 CoreFoundation 0x35826d4a -[NSArray makeObjectsPerformSelector:] + 382
21 WebCore 0x34bb000c -[WAKView viewWillDraw] + 24
22 CoreFoundation 0x3581dfc0 -[NSObject(NSObject) performSelector:] + 12
23 CoreFoundation 0x35826d4a -[NSArray makeObjectsPerformSelector:] + 382
24 WebCore 0x34bb000c -[WAKView viewWillDraw] + 24
25 WebKit 0x302c24cc -[WebView(WebPrivate) viewWillDraw] + 56
26 WebCore 0x34bafec0 WebCore::TileCache::prepareToDraw() + 36
27 WebCore 0x34bafe6e -[TileLayer display] + 26
28 QuartzCore 0x31079fb0 CALayerDisplayIfNeeded + 176
29 QuartzCore 0x3106f56e CA::Context::commit_transaction(CA::Transaction*) + 214
30 QuartzCore 0x3106f37c CA::Transaction::commit() + 184
31 QuartzCore 0x31092f96 CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 46
32 CoreFoundation 0x3580ac52 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 10
33 CoreFoundation 0x3580aac6 __CFRunLoopDoObservers + 406
34 CoreFoundation 0x358020c4 __CFRunLoopRun + 848
35 CoreFoundation 0x35801c80 CFRunLoopRunSpecific + 224
36 CoreFoundation 0x35801b88 CFRunLoopRunInMode + 52
37 GraphicsServices 0x320c84a4 GSEventRunModal + 108
38 GraphicsServices 0x320c8550 GSEventRun + 56
39 UIKit 0x341dc322 -[UIApplication _run] + 406
40 UIKit 0x341d9e8c UIApplicationMain + 664
41 WebViewTest 0x00002c24 0x1000 + 7204
42 WebViewTest 0x00002bd8 0x1000 + 7128
"NEW PROJECTS"의 ViewController (HEADER) FROM
- (void)viewDidLoad {
[super viewDidLoad];
self.myWebView = [[[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 768, 1004)] autorelease];
self.myWebView.backgroundColor = [UIColor whiteColor];
self.myWebView.scalesPageToFit = YES;
self.myWebView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
self.myWebView.delegate = self;
[self.view addSubview: self.myWebView];
[self.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.gelbeseiten.de/129103114849"]]];
//More Sites with HTML5-Videos ...
//[self.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.gelbeseiten.de/129103746403"]]];
//[self.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.gelbeseiten.de/129105233646"]]];
}
- (void)viewDidUnload {
[super viewDidUnload];
self.myWebView = nil;
}
- (void)viewWillDisappear:(BOOL)animated {
[self.myWebView stopLoading];
}
- (void)dealloc {
myWebView.delegate = nil;
[myWebView release];
[super dealloc];
}
CODE 아무도 내게 아이디어를 줄 수 있습니까?
미리 감사드립니다. Florian
iOS 4.2.1에서는 실제로 문제가있는 것으로 보입니다. iOS 3.2.2를 사용한 테스트는 문제가되지 않습니다. 다음 iOS 4.3에 대한 출시 노트를 읽으십시오 : "웹 - 특정 무거운 웹 사이트를로드 한 후 Safari 및 기타 응용 프로그램을 중단시키는 문제가 수정되었습니다." 아마도 문제는 iOS 4.3 – Florian
@Florian으로 해결할 수 있습니다! iOS 4.3 용 Xcode 3.2.6으로 업그레이드하여 해결 된 문제. 나는 이것을 기다리기 위해 2 주간 앱 업그레이드를 연기했다 ... –
오, 내 실수로, 아이폰 OS 4.3에 대한 Xcode 3.2.6에서 해결되지 않았다. 단지 내가 전에 드래그하기에는 너무 흥분했기 때문이다. Srijith Vijayamohan이 제안한대로로드됩니다. 나는 Srijith Vijayamohan의 제안을 통해 마침내 문제를 해결했다. 감사. –