从前天开始,我尝试实现使用百度地图api进行定位的功能。百度地图api的使用真的很麻烦,首先要在百度地图光网上申请应用并获取到AK(需要用到开发工具的sha1,Android studio查看sha1比较费劲,但是网上有教程),然后下载官方的sdk,再然后要配置开发环境,包括配置build.gradle和AndroidManifest.xml两个文件,在build.gradle力添加
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
在AndroidManifest.xml里要添加使用权限,service,还有申请到的AK,当然后续自己新建的LocationApplication类(继承自Application)也要在<Application>标签里面设置name。当然这些在官方的开发指南里也给了,按照给的设置就好。地址:http://lbsyun.baidu.com/index.php?title=android-locsdk
你以为这就完了?设置完这些,就来到了新建LocationApplication类了,在里面初始化sdk。
/**
* 主Application,所有百度定位SDK的接口说明请参考线上文档:http://developer.baidu.com/map/loc_refer/index.html
*
* 百度定位SDK官方网站:http://developer.baidu.com/map/index.php?title=android-locsdk
*
* 直接拷贝com.baidu.location.service包到自己的工程下,简单配置即可获取定位结果,也可以根据demo内容自行封装
*/
public class LocationApplication extends Application {
public LocationService locationService;
public Vibrator mVibrator;
@Override
public void onCreate() {
super.onCreate();
/***
* 初始化定位sdk,建议在Application中创建
*/
locationService = new LocationService(getApplicationContext());
mVibrator =(Vibrator)getApplicationContext().getSystemService(Service.VIBRATOR_SERVICE);
SDKInitializer.initialize(getApplicationContext());
}
}
最后一句: SDKInitializer. initialize (getApplicationContext());遇见了问题:程序找不到SDKInitializer类变量。。。。
在网上找了很多资料,什么so文件跟jar文件要导入到项目中或者rebulid项目等等,各种各样的方法都试了,然并卵。。。
费了两天时间去解决这个问题,最后我发现官方给的demo里面的jar包跟我在官网上下载的jar包大小不一样,自己下载的(官网说所有功能都实现了,定位导航等)才289k,demo里面的是1M多啊。
吓得我赶紧用demo的jar包替换了下载的jar包,结果解决了。
就想问百度地图一下,,,咱能不能不这么坑??
强烈建议各位开发者,按照官方给的demo来做,他用了什么包你就用什么包。。。伤不起啊!