Eclipse中的Codename One本地映射

时间:2016-02-19 16:26:14

标签: java eclipse google-maps codenameone

我在Eclipse中使用了Codename Google Maps插件。我将GoogleMaps.cn1lib添加到我的lib并执行菜单 - > CodeNameOne - >刷新Libs

代码如下:

    Form hi = new Form("Hi World");
    hi.addComponent(new Label("Hi World"));
    MapContainer googleMap = new MapContainer();
    hi.add(googleMap);
    hi.show();

我已经编辑了属性文件,并根据说明添加了道具(在需要时替换了API密钥)

我生成了Google API密钥,并在运行模拟器时遇到以下异常。该应用无法打开街道地图。

在我的lib/impl/native/android中,我可以在InternalNativeMapsImp.java for Android中看到源代码。

java.lang.ClassNotFoundException: com.codename1.googlemaps.InternalNativeMapsImpl
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.ClassLoader.findSystemClass(ClassLoader.java:1001)
at com.codename1.impl.javase.ClassPathLoader.findClass(ClassPathLoader.java:100)
at com.codename1.impl.javase.ClassPathLoader.loadClass(ClassPathLoader.java:50)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.codename1.system.NativeLookup.create(NativeLookup.java:61)
at com.codename1.googlemaps.MapContainer.<init>(MapContainer.java:116)
at com.codename1.googlemaps.MapContainer.<init>(MapContainer.java:81)

我已经从Eclipse / Net Beans改变了IDE - 同样的事情

并且在iOS 构建失败时出于同样的原因,就在我的堆栈跟踪之前:

执行:javac -classpath / var / folders / p7 / xxx / classes -d / var / folders / p7 / xxx / seVer /var/folders/p7/xxx/stub/com/codename1/googlemaps/InternalNativeMapsImplCodenameOne.java /var/folders/p7/xxx/stub/com/codename1/googlemaps/InternalNativeMapsStub.java /var/folders/p7/xxx/stub/GooglrMapsStub.java注意:某些输入文件使用或覆盖已弃用的API。 注意:使用-Xlint重新编译:弃用以获取详细信息。

如何将MapContainer的源代码添加到调试中?

1 个答案:

答案 0 :(得分:1)

Google / Native Maps目前在真实设备上提供,而不是在模拟器上提供。

显示openstreetmap是默认和正确的行为,但不应抛出异常。你是如何创建地图的?简单而正确的方法是:

MapContainer googleMap = new MapContainer();
f.add(BorderLayout.CENTER, googleMap);