Google Maps SDK for iOS crashing on startup using Monotouch bindings
google-maps-sdk-ios, xamarin.ios
Solution
Update #2
Google suggested a workaround and it has been implemented. I have successfully deployed to device :) you can find the working solution on MonoTouch-Bindings Repo
Google will fix this on their upcoming release as stated here.
Happy Coding
Update
There is a bug on Google Maps that makes it impossible to use it in Xamarin.iOS, this bug has been reported to google here
http://code.google.com/p/gmaps-api-issues/issues/detail?id=5018
Please Star it so google notices and fixes it faster ;)
I have updated the bindings to version 1.1.0 of Google Maps you can find them here https://github.com/mono/monotouch-bindings/tree/master/GoogleMaps
Please note I have not updated the sample to reflect the Api changes yet.
Hope this helps
Alex
Problem
I am trying to test out the new Google SDK for iOS using the GoogleMapsSample on GitHub, however, every time I run the app crashes trying to create an instance of `GMSMapView`. This is happening when trying to run on both the simulator and the device. I have enabled the SDK from the developer console and updated the `GMSServices.ProvideAPIKey` call to use my iOS API key, from what I have read that is pretty much all that's required? I did notice this bug which was logged against the actual SDK which mentions an issue relating to OpenGL so not sure if that's what the issue is here. However, as I can't get access to a log using the simulator I ran it on the device and checked the log out using XCode and the error does seem to relate to this - stack trace: ``` Incident Identifier: {Incident Id} CrashReporter Key: {CrashReporter key} Hardware Model: iPhone5,2 Process: GoogleMapsSample [6085] Path: /var/mobile/Applications/{AppId}/GoogleMapsSample.app/GoogleMapsSample Identifier: GoogleMapsSample Version: ??? (???) Code Type: ARM (Native) Parent Process: launchd [1] Date/Time: 2013-02-27 18:28:21.300 +0000 OS Version: iOS 6.0.2 (10A551) Report Version: 104 Exception Type: EXC_BAD_ACCESS (SIGABRT) Exception Codes: KERN_INVALID_ADDRESS at 0x00000180 Crashed Thread: 6 Last Exception Backtrace: 0 CoreFoundation 0x372913e2 __exceptionPreprocess + 158 1 libobjc.A.dylib 0x33cc995e objc_exception_throw + 26 2 CoreData 0x32330828 +[NSEntityDescription entityForName:inManagedObjectContext:] + 100 3 GoogleMapsSample 0x0010a3c6 -[GMSTileDataCache fetchTilesImmediateWithPredicate:sortDescriptor:completionHandler:] (GMSTileDataCache.mm:794) 4 GoogleMapsSample 0x00106af0 __47-[GMSTileDataCache startWithCompletionHandler:]_block_invoke_0 (GMSTileDataCache.mm:170) 5 libdispatch.dylib 0x3096478e _dispatch_call_block_and_release + 6 6 libdispatch.dylib 0x30967b36 _dispatch_queue_drain + 138 7 libdispatch.dylib 0x30965678 _dispatch_queue_invoke + 40 8 libdispatch.dylib 0x3096860e _dispatch_root_queue_drain + 206 9 libdispatch.dylib 0x309687d4 _dispatch_worker_thread2 + 88 10 libsystem_c.dylib 0x3337f7ec _pthread_wqthread + 356 11 libsystem_c.dylib 0x3337f680 start_wqthread + 4 Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0: 0 dyld 0x2fe9bcf6 ImageLoaderMachOCompressed::trieWalk(unsigned char const*, unsigned char const*, char const*) + 42 1 dyld 0x2fe9be88 ImageLoaderMachOCompressed::findExportedSymbol(char const*, ImageLoader const**) const + 72 2 dyld 0x2fe96ca4 ImageLoaderMachO::findExportedSymbol(char const*, bool, ImageLoader const**) const + 28 3 dyld 0x2fe93592 ImageLoader::findExportedSymbolInDependentImagesExcept(char const*, ImageLoader const**, ImageLoader const**&, ImageLoader const**, ImageLoader const**) const + 50 4 dyld 0x2fe936f0 ImageLoader::findExportedSymbolInImageOrDependentImages(char const*, ImageLoader::LinkContext const&, ImageLoader const**) const + 64 5 dyld 0x2fe91d12 dlsym + 474 6 libdyld.dylib 0x37ad79c6 dlsym + 54 7 libGFXShared.dylib 0x3362e5c4 gfxInitializeLibrary + 1256 8 GLEngine 0x379bce6a gliInitializeLibrary + 42 9 OpenGLES 0x36a9fa4e eagl_init + 418 10 OpenGLES 0x36a9f6a4 -[EAGLSharegroup initWithAPI:sharedWithCompute:] + 116 11 OpenGLES 0x36a9e45e -[EAGLContext initWithAPI:properties:] + 186 12 OpenGLES 0x36a9e2f2 -[EAGLContext initWithAPI:sharedWithCompute:] + 138 13 GoogleMapsSample 0x00081ada -[GMSIOSGLContext initWithAPI:] (GMSIOSGLContext.mm:14) 14 GoogleMapsSample 0x001275b6 gmscore::renderer::GMSIOSGLContextPool::GMSIOSGLContextPool() (GLContextPool.mm:108) 15 GoogleMapsSample 0x0012733a __GetGLContextPool_block_invoke_0 (GLContextPool.mm:204) 16 libdispatch.dylib 0x309645d8 _dispatch_client_callout + 20 17 libdispatch.dylib 0x30965586 dispatch_once_f + 42 18 GoogleMapsSample 0x001272da gmscore::renderer::GLContextPool::GetGLContextPool() (once.h:68) 19 GoogleMapsSample 0x00142b60 -[GMSEntityRendererView initWithFrame:context:] (GMSEntityRendererView.mm:53) 20 GoogleMapsSample 0x001562be -[GMSGestureHandlerView initWithFrame:context:gestures:] (GMSGestureHandlerView.mm:282) 21 GoogleMapsSample 0x000fc6d6 -[GMSVectorMapView initWithFrame:connection:tileServiceRegistry:tileRequestCoordinator:serverControlledParameters:resourceManager:resources:networkMonitor:context:flags:locationPipeline:] (GMSVectorMapView.mm:245) 22 GoogleMapsSample 0x00097bc6 -[GMSVectorMapViewBridge sharedInit:] (GMSVectorMapViewBridge.mm:108) 23 GoogleMapsSample 0x000977f0 -[GMSVectorMapViewBridge initWithFrame:camera:] (GMSVectorMapViewBridge.mm:84) 24 GoogleMapsSample 0x00080caa +[GMSMapView mapWithFrame:camera:] (GMSMapView.m:36) 25 GoogleMapsSample 0x00183058 wrapper_managed_to_native_ApiDefinition_Messaging_IntPtr_objc_msgSend_RectangleF_GMSCamera_intptr_intptr_System_Drawing_RectangleF_GoogleMaps_GMSCamera + 456 26 GoogleMapsSample 0x004ff57c GoogleMapsSample_MapViewController_LoadView (MapViewController.cs:21) 27 GoogleMapsSample 0x00edae94 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr + 196 28 GoogleMapsSample 0x018ebd84 mono_jit_runtime_invoke (mini.c:5783) 29 GoogleMapsSample 0x0195b644 mono_runtime_invoke (object.c:2790) 30 GoogleMapsSample 0x018d9816 native_to_managed_trampoline_GoogleMapsSample_MapViewController_LoadView (registrar.m:10129) 31 UIKit 0x3805d41c -[UIViewController loadViewIfRequired] + 64 32 UIKit 0x3809dd2c -[UIWindow addRootViewControllerViewIfPossible] + 60 33 UIKit 0x38099ac8 -[UIWindow _setHidden:forced:] + 360 34 UIKit 0x380db19c -[UIWindow makeKeyAndVisible] + 56 35 GoogleMapsSample 0x01549600 wrapper_managed_to_native_MonoTouch_ObjCRuntime_Messaging_void_objc_msgSend_intptr_intptr + 64 36 GoogleMapsSample 0x004ff22c GoogleMapsSample_AppDelegate_FinishedLaunching_MonoTouch_UIKit_UIApplication_MonoTouch_Foundation_NSDictionary (AppDelegate.cs:35) 37 GoogleMapsSample 0x00edae94 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr + 196 38 GoogleMapsSample 0x018ebd84 mono_jit_runtime_invoke (mini.c:5783) 39 GoogleMapsSample 0x0195b644 mono_runtime_invoke (object.c:2790) 40 GoogleMapsSample 0x018c9608 native_to_managed_trampoline_GoogleMapsSample_AppDelegate_FinishedLaunching (registrar.m:5515) 41 UIKit 0x3809ea74 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 248 42 UIKit 0x3809e5f8 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1164 43 UIKit 0x38096806 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 694 44 UIKit 0x3803ecea -[UIApplication handleEvent:withNewEvent:] + 1006 45 UIKit 0x3803e778 -[UIApplication sendEvent:] + 68 46 UIKit 0x3803e1ba _UIApplicationHandleEvent + 6194 47 GraphicsServices 0x315235f4 _PurpleEventCallback + 588 48 GraphicsServices 0x31523222 PurpleEventCallback + 30 49 CoreFoundation 0x372663e4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 32 50 CoreFoundation 0x37266386 __CFRunLoopDoSource1 + 134 51 CoreFoundation 0x3726520a __CFRunLoopRun + 1378 52 CoreFoundation 0x371d8238 CFRunLoopRunSpecific + 352 53 CoreFoundation 0x371d80c4 CFRunLoopRunInMode + 100 54 UIKit 0x38095440 -[UIApplication _run] + 664 55 UIKit 0x3809228c UIApplicationMain + 1116 56 GoogleMapsSample 0x01576fa8 wrapper_managed_to_native_MonoTouch_UIKit_UIApplication_UIApplicationMain_int_string___intptr_intptr + 236 57 GoogleMapsSample 0x004fef5c GoogleMapsSample_Application_Main_string__ (Main.cs:17) 58 GoogleMapsSample 0x00edae94 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr + 196 59 GoogleMapsSample 0x018ebd84 mono_jit_runtime_invoke (mini.c:5783) 60 GoogleMapsSample 0x0195b644 mono_runtime_invoke (object.c:2790) 61 GoogleMapsSample 0x0195e3aa mono_runtime_exec_main (object.c:3972) 62 GoogleMapsSample 0x01961cce mono_runtime_run_main (object.c:3602) 63 GoogleMapsSample 0x01905be6 mono_jit_exec (driver.c:1125) 64 GoogleMapsSample 0x019ae5f4 main (main.m:445) 65 GoogleMapsSample 0x0016d20c start + 36 Thread 1 name: Dispatch queue: com.apple.libdispatch-manager Thread 1: 0 libsystem_kernel.dylib 0x378c25d0 kevent64 + 24 1 libdispatch.dylib 0x30969d22 _dispatch_mgr_invoke + 806 2 libdispatch.dylib 0x30965374 _dispatch_mgr_thread + 32 Thread 2: 0 libsystem_kernel.dylib 0x378d2d98 __workq_kernreturn + 8 1 libsystem_c.dylib 0x3337fad6 _pthread_workq_return + 14 2 libsystem_c.dylib 0x3337f7f2 _pthread_wqthread + 362 3 libsystem_c.dylib 0x3337f680 start_wqthread + 4 Thread 3: 0 libsystem_kernel.dylib 0x378c1e80 semaphore_wait_trap + 8 1 GoogleMapsSample 0x01900992 mono_sem_wait (mono-semaphore.c:115) 2 GoogleMapsSample 0x019a0cea finalizer_thread (gc.c:1078) 3 GoogleMapsSample 0x0198bff6 start_wrapper (threads.c:784) 4 GoogleMapsSample 0x018f3942 thread_start_routine (wthreads.c:287) 5 GoogleMapsSample 0x019392dc GC_start_routine (pthread_support.c:1468) 6 libsystem_c.dylib 0x3338a0de _pthread_start + 306 7 libsystem_c.dylib 0x33389fa4 thread_start + 4 Thread 4 name: WebThread Thread 4: 0 libsystem_kernel.dylib 0x378c1e30 mach_msg_trap + 20 1 libsystem_kernel.dylib 0x378c1fd0 mach_msg + 48 2 CoreFoundation 0x372662b6 __CFRunLoopServiceMachPort + 126 3 CoreFoundation 0x3726502c __CFRunLoopRun + 900 4 CoreFoundation 0x371d8238 CFRunLoopRunSpecific + 352 5 CoreFoundation 0x371d80c4 CFRunLoopRunInMode + 100 6 WebCore 0x38ef9a58 _ZL12RunWebThreadPv + 440 7 libsystem_c.dylib 0x3338a0de _pthread_start + 306 8 libsystem_c.dylib 0x33389fa4 thread_start + 4 Thread 5: 0 libsystem_kernel.dylib 0x378d2d98 __workq_kernreturn + 8 1 libsystem_c.dylib 0x3337fad6 _pthread_workq_return + 14 2 libsystem_c.dylib 0x3337f7f2 _pthread_wqthread + 362 3 libsystem_c.dylib 0x3337f680 start_wqthread + 4 Thread 6 name: Dispatch queue: com.google.maps.TileDataCacheQueue Thread 6 Crashed: 0 libsystem_kernel.dylib 0x378d2350 __pthread_kill + 8 1 libsystem_c.dylib 0x333a7fb2 pthread_kill + 54 2 libsystem_c.dylib 0x333e4366 abort + 90 3 GoogleMapsSample 0x019330a4 mono_handle_native_sigsegv (mini-exceptions.c:2325) 4 GoogleMapsSample 0x018ea55e mono_sigsegv_signal_handler (mini.c:5878) 5 libsystem_c.dylib 0x333b1d38 _sigtramp + 40 6 GoogleMapsSample 0x01994b34 mono_domain_get (domain.c:1818) 7 GoogleMapsSample 0x0195b644 mono_runtime_invoke (object.c:2790) 8 GoogleMapsSample 0x019c0058 monotouch_throw_monotouch_exception (monotouch-glue.m:1420) 9 GoogleMapsSample 0x019c00e8 monotouch_exception_handler (monotouch-glue.m:1426) 10 CoreFoundation 0x372916cc __handleUncaughtException + 624 11 libobjc.A.dylib 0x33cc9a46 _ZL15_objc_terminatev + 126 12 libc++abi.dylib 0x361ee118 _ZL19safe_handler_callerPFvvE + 76 13 libc++abi.dylib 0x361ee1b0 std::terminate() + 16 14 libc++abi.dylib 0x361ef59a __cxa_throw + 118 15 libobjc.A.dylib 0x33cc999e objc_exception_throw + 90 16 CoreData 0x32330828 +[NSEntityDescription entityForName:inManagedObjectContext:] + 100 17 GoogleMapsSample 0x0010a3c6 -[GMSTileDataCache fetchTilesImmediateWithPredicate:sortDescriptor:completionHandler:] (GMSTileDataCache.mm:794) 18 GoogleMapsSample 0x00106af0 __47-[GMSTileDataCache startWithCompletionHandler:]_block_invoke_0 (GMSTileDataCache.mm:170) 19 libdispatch.dylib 0x30964790 _dispatch_call_block_and_release + 8 20 libdispatch.dylib 0x30967b36 _dispatch_queue_drain + 138 21 libdispatch.dylib 0x30965678 _dispatch_queue_invoke + 40 22 libdispatch.dylib 0x30968610 _dispatch_root_queue_drain + 208 23 libdispatch.dylib 0x309687d4 _dispatch_worker_thread2 + 88 24 libsystem_c.dylib 0x3337f7ee _pthread_wqthread + 358 25 libsystem_c.dylib 0x3337f680 start_wqthread + 4 Thread 6 crashed with ARM Thread State (32-bit): r0: 0x00000000 r1: 0x00000000 r2: 0x00000000 r3: 0x3a484524 r4: 0x00000006 r5: 0x0aa4c000 r6: 0x01a14b1e r7: 0x0aa4af9c r8: 0x00000000 r9: 0x3a480898 r10: 0x01a14b44 r11: 0x05a9385c ip: 0x00000148 sp: 0x0aa4af90 lr: 0x333a7fb7 pc: 0x378d2350 cpsr: 0x00000010 ``` Version info: ``` Mono 2.10.11 (mono-2-10/2baeee2) GTK 2.24.14 GTK# (2.12.0.0) Package version: 210110000 Xcode 4.5.1 (1842) Build 4G1004 Monotouch: 6.2.0.65 ``` Any ideas?