请选择 进入手机版 | 继续访问电脑版
帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
2
帖子
0
勋章
28
Y币

[BUG] baiduNavigation模块编译成apk,无反应

[复制链接]
发表于 2022-12-6 08:28:58
我公司2019年购买了baiduNavigation模块,当时在安卓手机进行测试,的确是好用的,但最近有项目要涉及该模块,因此重新把代码找出来,发现再编译的apk就完全没有反应。。有哪位朋友以前也遇到过该情况,请指点。。。主要是baiduNavigation模块的开发工作室也没法联系,没有咨询途径
setAgreePrivacy
重要:为进一步采取加强对最终用户个人信息的安全保护措施,从地图SDK v7.5.0版本起,请开发者务必确保调用SDK任何接口前先调用隐私合规接口setAgreePrivacy,否则可能会无法正常使用相关功能。

是否同意隐私政策

setAgreePrivacy({params})

params
isAgree:

类型:布尔类型
描述:是否同意(可选项)
默认:true
示例代码
var baiduNavigation = api.require('baiduNavigation');
baiduNavigation.setAgreePrivacy({
    isAgree:true
})
2
帖子
0
勋章
28
Y币
勇可可 · 2022-12-6 09:10setAgreePrivacy
重要:为进一步采取加强对最终用户个人信息的安全保护措施,从地图SDK v7.5.0版本起,请开发者务必确保调用SDK任何接口前先调用隐私合规接口setAgreePrivacy,否则可能会无法正常使用相关功能。


由于我用了bMap,因此先map.setAgreePrivacy,然后定义了baiduNavigation,同时又调用了baiduNavigation.setAgreePrivacy,目前调试窗口提示Cannot read properties of undefined (reading 'setAgreePrivacy')。。。。。

我程序代码如下:
var map = api.require('bMap');

        
      map.setAgreePrivacy({
        agree:true
        });


map.initMapSDK(function(ret) {
    if (ret.status) {
        alert('地图初始化成功!');

   

        var winHeight = api.winHeight;
                  var winWidth = api.winWidth;   //赋予变量窗口宽度或者高度值
                  var lon_user;
                  var lat_user;
                  map.open({
              rect:{
                 x: 0,
                 y: 0,
                 w: 'auto',
                 h: winHeight   //761  //-78
                 },
             center: {      
        lon: 126.6421310000,    // 经度.
                 lat: 45.7794480000     // 纬度.
    },
                 zoomLevel:15,
                 showUserLocation : true
                 },function(ret){
                 alert('show加导航模块2');
                 map.show();
                 
                      //  map.getLocation({
                      //     accuracy: '10m',
                      //     autoStop:true,
                      //     filter: 1
                      //     },function(ret){
                      //     var sta = ret.status;
                      //     lon_user = ret.lon;
                      //     lat_user = ret.lat;
                      //  map.setCenter({
                      //     coords: {
                      //     lon: lon_user,
                      //     lat: lat_user
                      //     },
                      //     animation: true
                      //     });
                      //  });

           })      

    }
});
   
var baiduNavigation = api.require('baiduNavigation');
baiduNavigation.setAgreePrivacy({
    isAgree:true
})

baiduNavigation.start({
    start: {                            // 起点信息.
        position: {                     // 经纬度,与address配合可为空
            lon: 112.47723797622677,    // 经度.
            lat: 34.556480000000015     // 纬度.
        },
        title: "中国四大石窟之一",       // 描述信息
        address: "龙门石窟"             // 地址信息,与position配合为空
    },
    goBy: [{                            // 途经点位置信息.
        position: {                     // 经纬度,与address配合可为空
            lon: 109.77539000000002,    // 经度
            lat: 33.43144               // 纬度.
        },
        title: "释源",                  // 描述信息
        address: "白马寺"               // 地址信息,与position配合为空
    }],
    end: {                              // 终点信息.
        position: {                     // 经纬度,与address配合可为空
            lon: 111.57062599999995,    // 经度
            lat: 33.784214              // 纬度
        },
        title: "龙蛇之窟",               // 描述信息
        address: "鸡冠洞"               // 地址信息,与position配合为空
    }
}, function(ret, err) {
    if (ret.status) {
        api.alert({
            title: "提示",
            msg: '导航成功'
        });
    } else {
        var msg = "未知错误";
        if (1 == err.code) {
            msg = "获取地理位置失败";
        }
        if (2 == err.code) {
            msg = "定位服务未开启";
        }
        if (3 == err.code) {
            msg = "线路取消";
        }
        if (4 == err.code) {
            msg = "退出导航";
        }
        if (5 == err.code) {
            msg = "退出导航声明页面";
        }
        api.alert({
            title: "导航出错",
            msg: msg
        });
    }
});
您好,这个应该是有模块冲突了,你还用到了百度的那些模块,发个模块截图
liucs6666 · 2022-12-6 09:14由于我用了bMap,因此先map.setAgreePrivacy,然后定义了baiduNavigation,同时又调用了baiduNavigation.setAgreePrivacy,目前调试窗口提示Cannot read properties of undefined (reading 'setAgreePrivacy')。。 ...

你是哪个setAgreePrivacy  undefined  执行到哪一行了
2
帖子
0
勋章
28
Y币
按照“技术咨询-特特”的建议,将bmap模块去除后,生成的apk的确有反应了,说明这2个模块的确有冲突。目前在config 、代码页中涉及到bmap的代码都注释掉,只剩baiduNavigation的代码,目前提示错误:[ERROR] Uncaught TypeError: Cannot read properties of undefined (reading 'setAgreePrivacy') at main.html:132

就是代码页中的这部分,但的确是按照说明写的内容,为什么会报错?
var baiduNavigation = api.require('baiduNavigation');
baiduNavigation.setAgreePrivacy({
    isAgree:true
})
2
帖子
0
勋章
28
Y币
勇可可 · 2022-12-6 09:29你是哪个setAgreePrivacy  undefined  执行到哪一行了


按照“技术咨询-特特”的建议,将bmap模块去除后,生成的apk的确有反应了,说明这2个模块的确有冲突。目前在config 、代码页中涉及到bmap的代码都注释掉,只剩baiduNavigation的代码,目前提示错误:[ERROR] Uncaught TypeError: Cannot read properties of undefined (reading 'setAgreePrivacy') at main.html:132

就是代码页中的这部分,但的确是按照说明写的内容,为什么会报错?
var baiduNavigation = api.require('baiduNavigation');
baiduNavigation.setAgreePrivacy({
    isAgree:true
})
<meta-data name="com.baidu.lbsapi.API_KEY" value="your app key"/>  这个配置加了吗,看下 baiduNavigation 这个模块文档,都配置好,重新编译试下
liucs6666 · 2022-12-6 09:34按照“技术咨询-特特”的建议,将bmap模块去除后,生成的apk的确有反应了,说明这2个模块的确有冲突。目前在config 、代码页中涉及到bmap的代码都注释掉,只剩baiduNavigation的代码,目前提示错误:[ERROR] Unca ...

看你的模块版本是多少  不是最新的么
2
帖子
0
勋章
28
Y币
勇可可 · 2022-12-6 10:55看你的模块版本是多少  不是最新的么

感谢大家的回复,我按照大家的提示,也逐步进行调试,把目前的设置及程序报错的情况和大家反馈一下,大家帮我看看问题出现在哪里

1.模块只剩下baiduNavigation、mam(我人为也把版本选择最高,同时也勾选了“始终使用模块最新版本”)
2.在config文件中把bmap的设置都注释掉,只保留baiduNavigation的信息,其中设置部分如下(我认为就
应该是设置有问题,如果哪位同事baiduNavigation成功运行了,烦请将config中的代码贴出来)
  <preference name="backgroundMode" value="audio | location"/>
  <meta-data name="com.baidu.lbsapi.API_KEY" value="百度地图开放平台中新建应用的AK"/>
<feature name="baiduNavigation">
    <param name="android_api_key" value="百度地图开放平台中新建应用的AK" />   
    <param name="android_tts_appid" value="百度地图开放平台中新建应用的编号,就是一个八位数字,我的是28864**2" />
    <param name="android_tts_appkey" value="这个id到底应该输入那个信息,我没弄清,config中没有该项是不是也可以?" />
    <param name="android_tts_appsecret" value="这个我还能理解,因为我在百度地图开放平台新建应用的基础上又申请了离线TTS,能够看到有secret ID" />
    <param name="android_tts_authsn" value="这个id到底应该输入那个信息,我没弄清,config中没有该项是不是也可以?" />            
</feature>
3.在html中,我写的很简单,但在本机编译提示Cannot read properties of undefined (reading '***'),我把代码都上传到服务器,打包编译,现在apk能运行起来,但一样报错,既不加载出来地图,也没有导航页面
var baiduNavigation = api.require('baiduNavigation');

//如果写setAgreePrivacy,就提示Cannot read properties of undefined (reading 'setAgreePrivacy')
baiduNavigation.setAgreePrivacy({   
    isAgree:true
})         

//篇幅原因,就不写那么多了,都是帮助文档中拷贝下来的,如果写setItemOverlay,就提示Cannot read properties of undefined (reading 'setItemOverlay')
baiduNavigation.setItemOverlay({  
        items:[{
                image:'widget://image/111.jpg',
                position:{
                lon : 112.07539000000002, // 经度
                lat : 34.43144 // 纬度.
                },
   
    })
       
//篇幅原因,就不写那么多了,都是帮助文档中拷贝下来的,如果写start,就提示Cannot read properties of undefined (reading 'start')
        baiduNavigation.start({  
    start: {                            // 起点信息.
        position: {                     // 经纬度,与address配合可为空
            lon: 112.47723797622677,    // 经度.
            lat: 34.556480000000015     // 纬度.
        },
        title: "中国四大石窟之一",       // 描述信息
        address: "龙门石窟"             // 地址信息,与position配合为空
    },)
12下一页
您需要登录后才可以回帖 登录

本版积分规则