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

  1. 使用跟demo相同的Key,并且联网成功,授权成功,但是在初始化地图的时候提示引擎初始化失败,解决方法:检查SDK中的资源文件mapapi.bundle是否导入,如果没有导入,导入即可。
  2. 由于百度地图的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表示只支持模拟器。
  3. 合并文件。使用命令
    lipo -create xxxx/ BaiduMapAPI xxxxx/ BaiduMapAPI -output BaiduMapAPI进行文件的合并。其中XXXX表示文件的路径,合并操作完成之后将合并后的文件拷贝到BaiduMapAPI.framework文件下,将之前的文件替换掉。上述操作完成之后,进入到从终端进入到BaiduMapAPI.framework文件夹下,使用命令lipo –info BaiduMapAPI 命令查看当前库的信息。
    这里写图片描述
    如果输出信息为 armv7 armv7s i386 x86_64 arm64 表示当前库同时支持模拟器和真机。
  4. 如果导入百度地图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)
    解决办法:在真机上编译即可通过。只有在模拟器上会有此问题出现。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将百度地图 SDK 集成至 Android Studio ,需要进行以下步骤: 1. 在百度地图开放平台注册开发者账号,并创建应用,获取相应的 API Key。 2. 下载百度地图 SDK,解压后将其的 libs 文件夹复制到项目的 app 目录下。 3. 在 app 的 build.gradle 文件添加以下依赖: ``` implementation files('libs/baidu-map-sdk-5.3.0.jar') implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support:support-v4:27.1.1' ``` 4. 在 AndroidManifest.xml 文件添加以下权限: ``` <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> ``` 5. 在 AndroidManifest.xml 文件添加以下配置: ``` <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="您的API Key"/> <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"> </service> ``` 6. 在布局文件添加一个 MapView 控件,用于显示地图。 7. 在代码初始化百度地图 SDK,并在 MapView 控件显示地图: ``` // 初始化百度地图 SDK SDKInitializer.initialize(getApplicationContext()); // 获取地图控件引用 MapView mapView = findViewById(R.id.bmapView); // 获取地图对象 BaiduMap baiduMap = mapView.getMap(); // 显示地图 MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newLatLng(new LatLng(39.914935, 116.403694)); baiduMap.setMapStatus(mapStatusUpdate); ``` 注意:调用百度地图 API 需要在网络环境良好的情况下进行,否则可能会出现无法访问 API 的情况。此外,使用百度地图 API 时需要遵守相关的服务条款和隐私政策。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值