Google Maps SDK for iOS crashing on startup using Monotouch bindings

3

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?

xamarin.ios
google-maps-sdk-ios
asked on Stack Overflow Feb 22, 2013 by James • edited Feb 27, 2013 by James

2 Answers

4

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

answered on Stack Overflow Feb 27, 2013 by dalexsoto • edited Jun 20, 2020 by Community
0

Xamarin did not update to the newer version since they did the last update on 14 december. I believe that this crash relates to this issue. Maybe the API keys you can generate today are just build for 1.1.0 and newer.

answered on Stack Overflow Feb 24, 2013 by Bohrnsen

User contributions licensed under CC BY-SA 3.0