Я пытаюсь добавить собственные карты Google (GoogleMaps.cn) в мой проект CodeNameOne, но у меня ошибка
java.lang.NoClassDefFoundError: com / codename1 / ui / ComponentSelector
ошибка вызвана этим ligne в методе запуска:
final MapContainer cnt = new MapContainer(HTML_API_KEY);
Я перехожу к MapContainer, и я обнаружил много ошибок компиляции, как этот метод:
public boolean isNativeMaps() {
}
Netbeans предложила мне добавить ответную отметку
public boolean isNativeMaps() {
return false;
}
но я думаю, что этот код генерируется автоматически при выполнении программы
потому что я исправил все проблемы, вернув статистику, и у меня возникла та же ошибка при выполнении программы.
Это мой код:
package com.codename1.uikit.materialscreens;
import com.codename1.components.InteractionDialog;
import com.codename1.components.ToastBar;
import com.codename1.googlemaps.MapContainer;
import com.codename1.ui.Display;
import com.codename1.ui.Form;
import com.codename1.ui.Dialog;
import com.codename1.ui.Label;
import com.codename1.ui.plaf.UIManager;
import com.codename1.ui.util.Resources;
import com.codename1.io.Log;
import com.codename1.maps.Coord;
import com.codename1.messaging.Message;
import com.codename1.notifications.LocalNotification;
import com.codename1.notifications.LocalNotificationCallback;
import com.codename1.ui.Button;
import com.codename1.ui.Container;
import com.codename1.ui.EncodedImage;
import com.codename1.ui.FontImage;
import com.codename1.ui.SideMenuBar;
import com.codename1.ui.TextField;
import com.codename1.ui.Toolbar;
import com.codename1.ui.geom.Rectangle;
import com.codename1.ui.layouts.BorderLayout;
import com.codename1.ui.layouts.BoxLayout;
import com.codename1.ui.layouts.FlowLayout;
import com.codename1.ui.layouts.LayeredLayout;
import com.codename1.ui.plaf.Style;
import entity.User;
import java.io.IOException;
import java.util.List;
import service.TraitementMedicalService;
public class MSUIKit {
private static final String HTML_API_KEY = "AIzaSyBWeRU02YUYPdwRuMFyTKIXUbHjq6e35Gw";
private Form current;
public void init(Object context) {
try {
Resources theme = Resources.openLayered("/theme");
UIManager.getInstance().setThemeProps(theme.getTheme(theme.getThemeResourceNames()[0]));
Display.getInstance().setCommandBehavior(Display.COMMAND_BEHAVIOR_SIDE_NAVIGATION);
UIManager.getInstance().getLookAndFeel().setMenuBarClass(SideMenuBar.class);
} catch (IOException e) {
e.printStackTrace();
}
}
public void start() {
if (current != null) {
current.show();
return;
}
Form hi = new Form("Native Maps Test");
hi.setLayout(new BorderLayout());
final MapContainer cnt = new MapContainer(HTML_API_KEY);
Button btnMoveCamera = new Button("Move Camera");
btnMoveCamera.addActionListener(e->{
cnt.setCameraPosition(new Coord(-33.867, 151.206));
});
Style s = new Style();
s.setFgColor(0xff0000);
s.setBgTransparency(0);
FontImage markerImg = FontImage.createMaterial(FontImage.MATERIAL_PLACE, s, Display.getInstance().convertToPixels(3));
Button btnAddMarker = new Button("Add Marker");
btnAddMarker.addActionListener(e->{
cnt.setCameraPosition(new Coord(41.889, -87.622));
cnt.addMarker(
EncodedImage.createFromImage(markerImg, false),
cnt.getCameraPosition(),
"Hi marker",
"Optional long description",
evt -> {
ToastBar.showMessage("You clicked the marker", FontImage.MATERIAL_PLACE);
}
);
});
Button btnAddPath = new Button("Add Path");
btnAddPath.addActionListener(e->{
cnt.addPath(
cnt.getCameraPosition(),
new Coord(-33.866, 151.195), // Sydney
new Coord(-18.142, 178.431), // Fiji
new Coord(21.291, -157.821), // Hawaii
new Coord(37.423, -122.091) // Mountain View
);
});
Button btnClearAll = new Button("Clear All");
btnClearAll.addActionListener(e->{
cnt.clearMapLayers();
});
cnt.addTapListener(e->{
TextField enterName = new TextField();
Container wrapper = BoxLayout.encloseY(new Label("Name:"), enterName);
InteractionDialog dlg = new InteractionDialog("Add Marker");
dlg.getContentPane().add(wrapper);
enterName.setDoneListener(e2->{
String txt = enterName.getText();
cnt.addMarker(
EncodedImage.createFromImage(markerImg, false),
cnt.getCoordAtPosition(e.getX(), e.getY()),
enterName.getText(),
"",
e3->{
ToastBar.showMessage("You clicked "+txt, FontImage.MATERIAL_PLACE);
}
);
dlg.dispose();
});
dlg.showPopupDialog(new Rectangle(e.getX(), e.getY(), 10, 10));
enterName.startEditingAsync();
});
Container root = LayeredLayout.encloseIn(
BorderLayout.center(cnt),
BorderLayout.south(
FlowLayout.encloseBottom(btnMoveCamera, btnAddMarker, btnAddPath, btnClearAll)
)
);
hi.add(BorderLayout.CENTER, root);
hi.show();
}
public void stop() {
current = Display.getInstance().getCurrent();
}
public void destroy() {
}
}
А это и есть OutPut:
java.lang.NoClassDefFoundError: com / codename1 / ui / ComponentSelector
на com.codename1.googlemaps.MapContainer. (MapContainer.java:173)
на com.codename1.googlemaps.MapContainer. (MapContainer.java:163)
на com.codename1.uikit.materialscreens.MSUIKit.start (MSUIKit.java:127)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
в java.lang.reflect.Method.invoke (Method.java:498)
at com.codename1.impl.javase.Executor $ 1 $ 1.run (Executor.java:106)
в com.codename1.ui.Display.processSerialCalls (Display.java:1152)
в com.codename1.ui.Display.mainEDTLoop (Display.java:969)
в com.codename1.ui.RunnableWrapper.run (RunnableWrapper.java:120)
в com.codename1.impl.CodenameOneThread.run (CodenameOneThread.java:176)
Вызывается: java.lang.ClassNotFoundException: com.codename1.ui.ComponentSelector
на java.net.URLClassLoader.findClass (URLClassLoader.java:381)
в java.lang.ClassLoader.loadClass (ClassLoader.java:424)
at sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:335)
в java.lang.ClassLoader.loadClass (ClassLoader.java:357)
в java.lang.ClassLoader.findSystemClass (ClassLoader.java:1004)
в com.codename1.impl.javase.ClassPathLoader.findClass (ClassPathLoader.java:100)
в com.codename1.impl.javase.ClassPathLoader.loadClass (ClassPathLoader.java:50)
... еще 12
Java Результат: 1
СТРОИТЬ УСПЕШНО (общее время: 3 секунды)