百度地图集成的小问题

百度地图集成的小问题

十月 27, 2017

模拟器运行时候JS不加载或白屏


之前用百度地图的时候都是直接Copy过来其他项目的地方,因为好业务逻辑相同,也简单了不少。但是偶然在运行中发现了这样一个问题。我用的是SDK 25(7.1)的模拟器,在我点击跳转到页面的时候显示了空白,同时我的日志输出了这样一段:

1
chromium: [ERROR:interface_registry.cc(104)] Failed to locate a binder for interface: autofill::mojom::PasswordManagerDriver

上网查阅资料里好多人说的是权限没获取到,又或是服务器资源不好。但这个页面短暂空白后,又出现了地图列表,看起来似乎是JS没有加载。可是我的代码里已经有了这些东西:

1
2
3
4
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setLoadsImagesAutomatically(true);

这个时候还是Stack Overflow上能看出些门道, 同时我注意到还有另外一条信息:

1
Unrecognized GLES max version string in extensions: ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_dma_v1 

由于是使用虚拟机,我意识到可能还有显示渲染的不兼容。

然后我试着找了一个x86版本的虚拟机安装上去,画面又显示回来了。

目前在Stack Overflow上没有找到什么能解决的办法。

无法在AndroidManifest.xml中获取com.baidu.android.lbs.API_KEY的值


按照文档上的说明,我在AndroidManifest文件中配置meta-data应该是可以的,但是读取不到,后来发现原来key 不应该是api_key而是com.baidu.lbsapi.API_KEY,这个问题还是要细心注意一下。