我有两个使用谷歌地图sdk的项目,它们目前在Appstore中。
要记住的事情:
今天我像往常一样在第一个项目中打开Xcode,试图在iPhone上编译和调试,我有时会在应用程序上遇到EXC_BAD_ACCESS (code=1...)
崩溃,有时会得到EXC_BAD_ACCESS (code=EXC_ARM_DA_ALING...)
,没有堆栈跟踪在这里,但始终在main.m上:
return UIApplicationMain(argc, argv, nil, NSStringFromClass([TGPAppDelegate class]));
看到第一个帖子我发现这是错误与谷歌地图有关:
尝试以下方法:
奇怪的是我也是:
这两个项目都处于早期测试状态,所以如果有真正的用户有这个问题,我不会担心,但我担心有些用户因此而无法使用这些应用程序。< / p>
我无法在互联网上找到太多信息,我甚至不知道在哪里查看,是否有任何已报告的错误?有其他人有同样的问题?
以下是我使用的示例代码:
-(void)viewDidLoad {
[super viewDidLoad];
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.80948
longitude:5.965699
zoom:2];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
self.view = mapView;
}
编辑1:
进行更多测试,发现问题仅在调试时出现(在运行应用程序时附加调试器),如果从iPhone运行应用程序,之后将调试器附加到进程,一切运行正常,我意思是,如果地图试图在附加调试器时进行渲染,那么你将得到exc_bad_access,然后是调试器错误?,我很困惑
编辑2:
答案 0 :(得分:9)
答案不是我的,这回答in here,谢谢Dave,我只是引用他,所以任何人都可以看到答案。
我找到了问题的根源并找到了解决方法:
问题似乎是由XCode中的OpenGL ES帧捕获引发的; 我猜这个问题是在Apple将混合金属添加到混合中时开始的 XCode 6.4 / iOS 8.3,可能会以某种方式对整个产生负面影响 帧捕获调试系统。
解决方法: 编辑:我找到了问题的根源并找到了解决方法:
问题似乎是由XCode中的OpenGL ES帧捕获引发的; 我猜这个问题是在Apple将混合金属添加到混合中时开始的 XCode 6.4 / iOS 8.3,可能会以某种方式对整个产生负面影响 帧捕获调试系统。
解决方法:
- 在XCode中,转到产品&gt;方案&gt;编辑方案......
- 选择左侧的“运行”标签。
- 选择顶部的“选项”子选项卡。
- 将“GPU Frame Capture”从“Automatically Enabled”或“OpenGL ES”更改为“Metal”或“Disabled”。
醇>这会禁用OpenGL ES帧捕获,这不是很好,但允许 你继续调试你的构建。
不确定此问题是Apple还是Google,但我会发布错误 报告两者。快乐的编码!
答案 1 :(得分:0)
我有完全相同的问题:
iphone 4 - &gt; iOs 7(工作)
xcode模拟器(工作)
iphone 5s - &gt; iOs 8.3(不工作EXC_BAD_ACCESS)
解决方案:我将iphone更新为iOs 8.4,问题消失了,地图正在加载。
希望有所帮助