2013-06-12 40 views
5

在我的应用程序中,我偶尔会在从其中的GMSMapView(从我的UINavigationController中弹出)中导航离开视图时发生崩溃。它崩溃的螺纹10,和这里的崩溃信息:谷歌地图iOS SDK在销毁GMSMapView时偶尔发生崩溃

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Codes: KERN_INVALID_ADDRESS at 0x00000004 
Crashed Thread: 10 

而且堆栈跟踪线程:

Thread 10 name: Dispatch queue: URLConnection 
Thread 10 Crashed: 
0 libsystem_c.dylib    0x39ef897c OSAtomicAdd32 + 0 
1 CoreData      0x31bf3de4 _PFfastQueueRelease + 24 
2 CoreData      0x31bd3ee8 -[NSManagedObject release] + 224 
3 CoreFoundation     0x31d2d30c CFRelease + 96 
4 CoreFoundation     0x31d47e96 -[__NSDictionaryM dealloc] + 130 
5 Trail Tracker GPS    0x00206076 -[GMSTileDataCache .cxx_destruct] + 162 
6 libobjc.A.dylib     0x39a90f3a object_cxxDestructFromClass(objc_object*, objc_class*) + 54 
7 libobjc.A.dylib     0x39a8e0ce objc_destructInstance + 30 
8 libobjc.A.dylib     0x39a8e3a2 object_dispose + 10 
9 Trail Tracker GPS    0x00201810 -[GMSTileDataCache dealloc] + 172 
10 Trail Tracker GPS    0x0030da12 -[GMSDASHTileService .cxx_destruct] + 318 
11 libobjc.A.dylib     0x39a90f3a object_cxxDestructFromClass(objc_object*, objc_class*) + 54 
12 libobjc.A.dylib     0x39a8e0ce objc_destructInstance + 30 
13 libobjc.A.dylib     0x39a8e3a2 object_dispose + 10 
14 Trail Tracker GPS    0x00309786 -[GMSDASHTileService dealloc] + 182 
15 libobjc.A.dylib     0x39a90f3a object_cxxDestructFromClass(objc_object*, objc_class*) + 54 
16 libobjc.A.dylib     0x39a8e0ce objc_destructInstance + 30 
17 libobjc.A.dylib     0x39a8e3a2 object_dispose + 10 
18 CoreFoundation     0x31d2d30c CFRelease + 96 
19 CoreFoundation     0x31d37a0e -[__NSArrayI dealloc] + 74 
20 Trail Tracker GPS    0x00230e84 -[GMSDASHStreamingBody .cxx_destruct] + 40 
21 libobjc.A.dylib     0x39a90f3a object_cxxDestructFromClass(objc_object*, objc_class*) + 54 
22 libobjc.A.dylib     0x39a8e0ce objc_destructInstance + 30 
23 libobjc.A.dylib     0x39a8e3a2 object_dispose + 10 
24 CoreFoundation     0x31d2d30c CFRelease + 96 
25 CFNetwork      0x31aececa CoreReadStreamFromCFReadStream::~CoreReadStreamFromCFReadStream() + 38 
26 CFNetwork      0x31aece8a CoreReadStreamFromCFReadStream::~CoreReadStreamFromCFReadStream() + 6 
27 CoreFoundation     0x31d2d3ce CFRelease + 290 
28 CFNetwork      0x31a4f7be HTTPRequest::~HTTPRequest() + 74 
29 CFNetwork      0x31a4f76a HTTPRequest::~HTTPRequest() + 6 
30 CoreFoundation     0x31d2d3ce CFRelease + 290 
31 CFNetwork      0x31a54992 URLRequest::~URLRequest() + 106 
32 CFNetwork      0x31a5491e URLRequest::~URLRequest() + 6 
33 CoreFoundation     0x31d2d3ce CFRelease + 290 
34 CFNetwork      0x31a4464c __CFURLCacheNode::~__CFURLCacheNode() + 40 
35 CFNetwork      0x31a429de __CFURLCacheNode::~__CFURLCacheNode() + 6 
36 CFNetwork      0x31a4f57e __CFURLCache::RemoveResponseFromCacheContainers(__CFURLCacheNode*, _CFCachedURLResponse const*, __CFString const*, bool) + 158 
37 CFNetwork      0x31a4d71e __CFURLCache::AddResponseIntoCacheContainers(__CFString const*, __CFURLCacheNode*, bool) + 102 
38 CFNetwork      0x31a4d652 __CFURLCache::CreateAndStoreCacheNode(__CFURLCacheNode*, _CFCachedURLResponse const*, __CFString const*, _CFURLRequest const*, void const*, bool, bool&) + 186 
39 CFNetwork      0x31a900c8 __CFURLCache::AddCacheTask0(__CFURLCacheNode*) + 320 
40 CFNetwork      0x31a8ff78 __CFURLCache::AddCacheTask(__CFURLCacheNode*) + 28 
41 CFNetwork      0x31a4d55e CFURLCacheAddCachedResponseForRequest + 622 
42 CFNetwork      0x31ac7ac4 ___internalEvent_WillCacheResponse_block_invoke_0 + 28 
43 CFNetwork      0x31ac91ca URLConnectionClient_Classic::_delegate_willCacheResponse(_CFCachedURLResponse const*, void()(_CFCachedURLResponse const*) block_pointer) + 42 
44 CFNetwork      0x31ac7a96 URLConnectionClient::_internalEvent_WillCacheResponse() + 586 
45 CFNetwork      0x31ac7b8c URLConnectionClient::_clientEvent_DidFinishLoading() + 172 
46 CFNetwork      0x31acdaa8 ___withClientAsync_block_invoke_0 + 20 
47 CFNetwork      0x31ac6426 ___withWorkQueueAsync_block_invoke_0 + 10 
48 CFNetwork      0x31af0e34 ___performAsync_block_invoke_0 + 24 
49 libdispatch.dylib    0x39ea911c _dispatch_call_block_and_release + 8 
50 libdispatch.dylib    0x39ea8996 _dispatch_queue_drain$VARIANT$up + 142 
51 libdispatch.dylib    0x39ea8890 _dispatch_queue_invoke$VARIANT$up + 32 
52 libdispatch.dylib    0x39eb7212 _dispatch_root_queue_drain + 190 
53 libdispatch.dylib    0x39eb73b4 _dispatch_worker_thread2 + 80 
54 libsystem_c.dylib    0x39edda0e _pthread_wqthread + 358 
55 libsystem_c.dylib    0x39edd8a0 start_wqthread + 4` 

有没有人从GMSMapView或谷歌地图SDK见过这样的崩溃?

+0

你能告诉我们你在那个线程中做了什么,如果它是你的?我在编写的代码中遇到类似的崩溃,问题是:我将一个块发布到全局并发队列中;该块创建了一个新的Core Data托管对象上下文,做了一堆事情并退出。发生崩溃是因为一些托管对象通过坐在自动释放池中能够超越该上下文 - 据推测我提供了一个作为返回结果。因此,解决方案是在'@ autoreleasepool'中创建和明确销毁的上下文之间包装所有内容。 – Tommy

+0

线程不是我的。我假设它是谷歌地图检索或更新瓷砖。 –

回答

0

我在Xcode 5 - DP 5和以前版本的Google Maps SDK中遇到过这个问题。我升级了SDK,事情似乎消失了。