由于是第一次尝试使用百度地图的sdk的进行一个简单的定位,而遇到的问题,并说说本人理解到的原因和解决方法:
1、问题:从百度的开发平台注册和创建我们自己的应用后,再将百度sdk下载下来,并且集成到我们的应用 中,但在失败百度sdk的包中的类时,怎么都找不到。
原因:android studio 条用的so库文件都需要放到其项目中对应的jniLibs的目录中
解决方法:在项目总的src/main/ 下面新建jniLibs文件夹,并且将so库拷贝到此,注意需要对应其中的ABI或者CPU对应的文件夹,如下:
2、问题:将下载的sdk集成到应用后,首先想到的是定位当前的位置,但是在应用发现,总是找不到LocationClient 这个类。
原因:下载的sdk中少了一个jar包,如图:
但是在百度提供的demo中有一个locSDK_6.13.jar包的,如图:
解决方法:把这个jar包拷贝过去就可以了。(注意:还有so库中也有一个)
3、问题:将sdk都集成到应用后,启动应用,界面总是白板,并且在android studio的logcat中总是打印出,如下:
原因:在AndroidManifest.xml 文件配置申请的meta-data 中的name配置有问题,不知道是什么规则。
解决方法:
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="***************************"/> //这里是你们自己创建应用时中的AK,我就用*代替了
4、问题:LocationCliean 的Start方法无论怎么执行,其IsStart的方法返回值都是false。
原因:百度地图需要在android app应用中的AndroidManifest文件中注册一个自己的服务,不然就·····
解决方法: 在 AndroidManifest.xml 文件中注册这个服务,如下:
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote" >
</service>
5、问题:每次定位返回的都是4.9E-324,该值是百度地图返回的默认值。
原因:是因为直接使用的是下载的百度SDK,里面少了一个so库文件:liblocSDK6a.so
解决方法:在百度给的demo中,将这个so库文件放到jniLibs中对用的so库文件夹下面就可以了。
好了,以上就是我遇到过的问题,在这里记录一下,方便以后查询,如果有遇到其他问题,再行补充吧!