Java 代号为1的Android设备上的LayeredLayout中未显示本机地图

Java 代号为1的Android设备上的LayeredLayout中未显示本机地图,java,android,google-maps,codenameone,Java,Android,Google Maps,Codenameone,2-3周来,我一直在一台真正的Android设备上使用我正在开发的应用程序。到目前为止,它总是在设备上显示谷歌地图,在模拟器上显示OSM 今天我做了一些修改——即在地图顶部添加了一个按钮,并发送了构建。CN1和CN1libs在发送生成之前已更新。现在,当我在设备上测试它时,没有显示地图,我得到404:notfound。如果您曾经询问过模拟器中的行为,它仍然可以正常工作(但它使用OSM和MapComponent) 这是我用来放下地图的代码(地图初始化没有改变): 我已经看过了,但最近的更改只涉及l

2-3周来,我一直在一台真正的Android设备上使用我正在开发的应用程序。到目前为止,它总是在设备上显示谷歌地图,在模拟器上显示OSM

今天我做了一些修改——即在地图顶部添加了一个按钮,并发送了构建。CN1和CN1libs在发送生成之前已更新。现在,当我在设备上测试它时,没有显示地图,我得到404:notfound。如果您曾经询问过模拟器中的行为,它仍然可以正常工作(但它使用OSM和MapComponent)

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

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

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


感谢您的帮助。

最终,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);

这可能与您使用的证书的权限或更改有关,本机Google Maps绑定到特定的证书和权限,并且Google云设置或应用程序中的某些内容可能已更改,从而导致此故障。调试此问题的方法是用电缆插入设备,并查看其所在的ddms/logcat输出如果我执行此操作,则应在不更改任何内容的情况下列出。添加(BorderLayout.CENTER,googleMap);(而不是使用LayeredLayout),然后再次显示地图。
BorderLayout.centerCenter()
为组件提供其首选大小,该大小可以为零,因为本机代码在其自身线程上工作。
BorderLayout.CENTER()
将起作用。
Container mapWithButton = LayeredLayout.encloseIn(
                                        BorderLayout.center(googleMap),
                                        FlowLayout.encloseRight(locateMeButton));

this.add(BorderLayout.CENTER, mapWithButton);