【Android】 APP嵌入百度地图骑行导航一直初始化引擎失败解决办法
最近手头上有个需求需要做骑行导航
首先百度地图开放平台http://lbsyun.baidu.com/
按提示找到Android开发文档
找到骑行导航,根据提示去下载平台,下载对应得DEMO,开发包
DEMO下载下来之后解压,骑行导航DEMO所在的包如下图
ok,DEMO已经找到,导入工程、修改参数为自己应用配置(具体方法,自行百度)【包名、KEY】,运行看看效果
调用成功,ok,可以移植到自己的项目中了,另外可以发现,其实起点的位置,就是定位的位置,传入参数只是一个参考(个人观点)
在需要调用导航的页面添加代码(前提是lib已经添加到项目中)
private void prepareBikeData(double endlat,double endlong) {
if(longitude != 0 && latituede != 4.9E-324){
LatLng startPt = new LatLng(latituede,longitude);
LatLng endPt = new LatLng(endlat, endlong);
bikeParam = new BikeNaviLaunchParam().stPt(startPt).endPt(endPt).vehicle(1);//vehicle 0为普通导航 1为电动车导航
startBikeNavi();
}
}
/**
* 开始骑行导航
*/
private void startBikeNavi() {
Log.d("BikeNavi", "开始骑行导航");
try {
BikeNavigateHelper.getInstance().initNaviEngine(this, new IBEngineInitListener() {
@Override
public void engineInitSuccess() {
Log.d("BikeNavi", "引擎初始化成功");
routePlanWithBikeParam();
}
@Override
public void engineInitFail() {
Log.d("BikeNavi", "引擎初始化失败");
}
});
} catch (Exception e) {
Log.d("BikeNavi", "引擎初始化异常");
e.printStackTrace();
}
}
/**
* 发起骑行导航算路
*/
private void routePlanWithBikeParam() {
BikeNavigateHelper.getInstance().routePlanWithParams(bikeParam, new IBRoutePlanListener() {
@Override
public void onRoutePlanStart() {
Log.d("BikeNavi", "开始算路");
}
@Override
public void onRoutePlanSuccess() {
Log.d("BikeNavi", "算路成功,跳转至诱导页面");
Intent intent = new Intent();
intent.setClass(MainActivity.this, BNaviGuideActivity.class);
startActivity(intent);
}
@Override
public void onRoutePlanFail(BikeRoutePlanError error) {
Log.d("BikeNavi", "算路失败");
}
});
}
然后新的问题又来了,之前在DEMO中运行的好好的程序,一直提示,骑行导航初始化引擎失败。
各种百度,随后找到答案在DEMO中
assets目录下还有个 .png的文件,这不是一张图片,这个应该是百度某些资源文件,所以把这个文件夹直接拷贝到自己的项目中,再次运行,发现功能已经做好了。