Codenameone 为什么MapListener不总是在Simulator下对代号为One的GoogleMap启动

Codenameone 为什么MapListener不总是在Simulator下对代号为One的GoogleMap启动,codenameone,Codenameone,我的应用程序有一个ContainerMap(带有有效Javascript API键的谷歌地图),它位于BorderLayout表单的中心位置 super(new BorderLayout(BorderLayout.CENTER_BEHAVIOR_SCALE)); ... this.add(BorderLayout.CENTER_BEHAVIOR_CENTER, BorderLayout.center(userReportsMap)); 我已经注册了一个MapListener,我想知道为什么当我

我的应用程序有一个
ContainerMap
(带有有效Javascript API键的谷歌地图),它位于BorderLayout表单的中心位置

super(new BorderLayout(BorderLayout.CENTER_BEHAVIOR_SCALE));
...
this.add(BorderLayout.CENTER_BEHAVIOR_CENTER, BorderLayout.center(userReportsMap));
我已经注册了一个
MapListener
,我想知道为什么当我在模拟器下放大或缩小时,它不总是被触发?当GoogleMap初始化并将MapListener添加到地图中时,它似乎在开始时被触发了十几次,然后它就不再触发了。我按减号键和加号键放大缩小

请注意:我不会删除侦听器,也不会在以后的任何地方实例化映射

相反,在安卓设备上,当我掐它时,它似乎能像预期的那样工作。那么,由于底层Javascript映射,这是模拟器中的一个限制吗


任何提示都值得赞赏,

我刚刚发布了对Google地图库的一些更改,以修复JS和模拟器中的一些竞赛条件。这可能会为您解决问题


是指向最新库的直接链接。或者,您可以等待(可能不到一天)它出现在Codename One设置/扩展中,并在那里进行更新。

这听起来像是相对较新的地图JavaScript版本中的一个bug。我会建议提交一个项目测试用例的问题。对不起,史蒂夫,但我几乎看不到任何区别。我在
MapListener()
中添加了
System.err.println
,每当我放大/缩小(使用-/+键)或移动地图时,它都不会打印任何内容。我用的是谷歌地图14版。这就是你所说的吗?我想补充一点,更糟糕的是,MapListener似乎根本没有被解雇(在模拟器和设备上)。你需要提交一个问题并提供一个测试用例。我的测试应用程序正在模拟器和我尝试过的所有设备(Android、iOS)上正确地向MapListener触发地图更改事件。这在所有版本中都适用于我。版本号应该是15。这很奇怪,我这边应该有个错误。否则,CN1 extensions窗口会显示一个绿色勾号,而libs/GoogleMaps.ver仍然显示
version=14
。现在它显示的是version 15!但是,如果您添加'cnt.addMapListener((source,zoom,center)->{System.err.println(“zoom或center changed”);})`在您的测试用例(#2011)的第185行中,消息在开始时只打印了两次,之后再也不会打印(至少在模拟器中)。