谷歌地图iOS SDK崩溃

问题描述:

我使用谷歌地图iOS SDK与故事板。应用程序从具有带映射的根视图控制器的导航视图控制器开始。谷歌地图iOS SDK崩溃

@implementation MyViewController 
@synthesize btnMyLock; 
@synthesize btnNearby; 

GMSMapView *mapView_; 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:20 
                 longitude:20 
                  zoom:0]; 

    mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera]; 
    mapView_.myLocationEnabled = YES; 

    self.view = mapView_; 
    // Creates a marker in the center of the map. 
    GMSMarker *marker = [[GMSMarker alloc] init]; 
    [marker setIcon:[UIImage imageNamed:@"pin"]]; 
    marker.position = CLLocationCoordinate2DMake(-33.86, 151.20); 
    marker.title = @"Sydney"; 
    marker.snippet = @"Australia"; 
    marker.map = mapView_; 

    mapView_.settings.compassButton = YES; 

    [mapView_ addSubview:btnMyLock]; 
    [mapView_ addSubview:btnNearby]; 
} 

按钮btnMyLock推动表视图控制器。在iOS 7中没关系。但iOS 6我的应用程序崩溃。有时EXC_BAD_ACCESS(代码= 1)或代码= 2崩溃

+0

我什么也没做,应用程序工作。 –

问题,我用Autolayout视图。

+0

我没有使用自动布局。我的应用程序仍然在地图屏幕上随机崩溃。需要帮忙。有人请帮助我。 –

您忘记了步骤4:“”从Resources文件夹拖动GoogleMaps.bundle到您的项目。

我建议把它放在框架组中。出现提示时,请确保未将“将项目复制到目标组的文件夹”中。我遇到了同样的问题,并修复了这个问题。

+0

GoogleMaps.bundle存在于项目中。我补充说,没有“复制”。在iOS 7应用程序工作和iOS 6崩溃。 –

我不知道这是否是造成问题,但我不会做:

self.view = mapView_; 

只需添加mapView_作为一个子视图,如:

[self.view addSubview:mapView_]; 

在一般的EXC_BAD_ACCESS崩溃是在你对内存管理不当时引起的(例如,一个对象被提前解除分配)。试着找出崩溃正在发生的对象。


在代码中创建按钮,而不是从IBO的IBOutlets。否则,他们不会被加载,因为你没有使用xib。

+0

这是从谷歌地图SDK教程 [谷歌地图sdk](https://developers.google.com/maps/documentation/ios/start) 当我评论self.view = mapView_; - 是工作。 –

+0

如果您添加视图作为我发布的代码的子视图?还是崩溃?你的按钮是如何创建的? –

+0

@RolandKeeson我修复了这个错误。按钮是网点。我什么都不做,就这些。魔法。 –

使用Google地图时使用此代码,然后在导航到另一个屏幕时检查其没有崩溃。

- (void)dealloc { 
[super dealloc]; 
[mapView_ removeObserver:self 
       forKeyPath:@"myLocation" 
       context:NULL]; 
} 
+0

这是为我工作 – MAC113