原始地图未在带有Codename One的Android设备上的LayeredLayout中显示

时间:2017-02-19 21:00:23

标签: java android google-maps codenameone

我花了2-3个星期在真正的Android设备上开发使用我的应用程序。到目前为止,它一直在设备上显示Google Maps,在模拟器上显示OSM。

今天我做了一些更改 - 只是在地图上添加了一个按钮,并发送了构建。在发送构建之前更新了CN1和CN1lib。现在,当我在设备上测试它时,没有显示地图,我得到 404:Not found 。如果您曾询问模拟器中的行为,它仍然可以按预期工作(但它使用OSM和MapComponent)。

这是我放下地图的代码(地图初始化没有改变):

Container mapWithButton = LayeredLayout.encloseIn(BorderLayout.centerCenter(googleMap),
FlowLayout.encloseRight(locateMeButton));
this.add(BorderLayout.CENTER, mapWithButton);

我查看了MapContainer history,但最近的更改只涉及longPressListener。请注意,原生地图应用在设备上运行良好。通过DDMS调试没有帮助(屏幕上出现相同的错误)。

我是否忘记更新或添加构建提示?

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

最终404错误与地图无关,但添加的MapListener试图从移动地图时尚未提供的地址获取数据。

然而,要实际显示地图的事实,需要通过BorderLayout.center()而不是BorderLayout.centerCenter()替代方案将其括起来。

所以我没有提供解释,但以下代码按预期显示地图和按钮(请注意BorderLayout.center而不是BorderLayout.centerCenter

Container mapWithButton = LayeredLayout.encloseIn(
                                        BorderLayout.center(googleMap),
                                        FlowLayout.encloseRight(locateMeButton));

this.add(BorderLayout.CENTER, mapWithButton);