我在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的源代码添加到调试中?
答案 0 :(得分:1)
Google / Native Maps目前在真实设备上提供,而不是在模拟器上提供。
显示openstreetmap是默认和正确的行为,但不应抛出异常。你是如何创建地图的?简单而正确的方法是:
MapContainer googleMap = new MapContainer();
f.add(BorderLayout.CENTER, googleMap);