您的位置:首页 > 其它

百度地图SDK使用过程中的那些坑

2015-10-16 14:24 134 查看
使用跟demo相同的Key,并且联网成功,授权成功,但是在初始化地图的时候提示引擎初始化失败,解决方法:检查SDK中的资源文件mapapi.bundle是否导入,如果没有导入,导入即可。

由于百度地图的SDK分为模拟器上使用的SDK和真机上使用的SDK,如果不慎将SDK导错(比如,在真机测试时,导入了模拟器上使用的SDK),会出现以下错误:



将在模拟器上,使用真机SDK,出现的错误,



解决办法,删除当前的SDK,导入正确的SDK。

但是,由于在实际的开发过程中,每次调试就要重新导入SDK是一件特别烦得事情,因此,我们可以将百度地图的两个SDK进行合并。合并的步骤如下所示:

(1)打开中终端,使用cd命令进入到要合并的文件所在的路径,比如:cd /Users/[用户名]/Desktop/百度/Release-iphoneos/BaiduMapAPI.framework

(2)使用lipo –info BaiduMapAPI 查看当前库的信息 ,



armv7 armv7s arm64 表示只支持真机。同样的操作步骤可以查看模拟器的。输出i386 x86_64表示只支持模拟器。

合并文件。使用命令

lipo -create xxxx/ BaiduMapAPI xxxxx/ BaiduMapAPI -output BaiduMapAPI进行文件的合并。其中XXXX表示文件的路径,合并操作完成之后将合并后的文件拷贝到BaiduMapAPI.framework文件下,将之前的文件替换掉。上述操作完成之后,进入到从终端进入到BaiduMapAPI.framework文件夹下,使用命令lipo –info BaiduMapAPI 命令查看当前库的信息。



如果输出信息为 armv7 armv7s i386 x86_64 arm64 表示当前库同时支持模拟器和真机。

如果导入百度地图SDK之后,需要导入导航SDK,但是根据官网的配置,配置完成之后发现,使用模拟器编译报错,错误信息如下:

duplicate symbol _DispatchVMsgToObservers in:

/Users/[路径]/Classes/ThirdPart/BaiduNavi_iOSSDK_v2.0.4_Lib/libbaiduNaviSDK.a(VMsg.o)

/Users/[路径]/Classes/ThirdPart/BaiduMapAPI.framework/BaiduMapAPI(VMsg.o)

ld: 1 duplicate symbol for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

解决办法:在真机上编译即可通过。只有在模拟器上会有此问题出现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: