当前位置: 首页 > 知识库问答 >
问题:

noClassDefFounderRor:com/codename1/ui/componentSelector

濮阳奇逸
2023-03-14

我试图将Google Native Maps(GoogleMaps.cn)添加到我的CodeNameOne项目中,但是我有一个错误

  final MapContainer cnt = new MapContainer(HTML_API_KEY);
  public boolean isNativeMaps() {
}

Netbeans让我添加一个返回状态

  public boolean isNativeMaps() {
        return false;
}

但是我认为这段代码是在执行程序时自动生成的,因为我已经通过返回statment纠正了所有问题,并且在执行程序时也有同样的错误。

这是我的代码:

   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() {
       }



   }

共有1个答案

任云瀚
2023-03-14

这是因为您的项目库和插件可能已经过时。因此,尽管对于如何在Java中为Codename One,还有其他的答案,但答案有点不同。

您需要首先确保您的Codename One插件是最新的。这是特定于IDE的,但应该是6或更高的版本。然后从右键单击菜单启动Codename One Settings,我想你知道怎么做。在其中,转到basic->update Project libs

 类似资料:
  • https://github.com/chen-fishbein/admobfullscreen-codenameone cn1lib 它在模拟器和Android中构建和运行良好,但在iOS中构建失败。服务器端显示的错误为: noClassDefFounderRor:com/codename1/social/GoogleImpl错误。 谢/陈/有人对此有什么建议吗?谢了。

  • 我一直在开发一个基于注释处理器的库。当我把它作为本地库运行时,它工作得很好。举个例子 但是在发布到jCenter之后。它看起来像 但是当我使用这个jCenter回购时,它会生成下面的错误,但在本地它工作正常 错误:错误的服务配置文件,或在构造处理器对象javax时引发异常。注释。处理。处理器:提供程序对话框启动。编译器。无法实例化DialogProcessor:java。lang.NoClassD

  • 当我发送iOS构建新的Codename One Scanner库时(我更改导入语句及其导入com.codename1.ext.codescan.CodeScanner;) 然后,我得到了服务器上生成的以下错误,iOS构建失败。 < code >以下构建命令失败:CompileC build/StockTake . build/Release-iphone OS/StockTake . build/

  • 日安...当对APK进行更改时,当应用程序是在游戏商店或应用商店里,如何使版本代码和版本名称在codenameone中像“Menifest文件”一样,以便现有用户将收到我们的更新。

  • 每个用户界面都考虑以下三个主要方面 - UI elements - 这些是用户最终看到并与之交互的核心可视元素。 JavaFX提供了大量广泛使用的常用元素列表,从基本到复杂,我们将在本教程中介绍。 Layouts - 它们定义了如何在屏幕上组织UI元素,并为GUI(图形用户界面)提供最终外观。 这部分将在布局章节中介绍。 Behavior - 这些是用户与UI元素交互时发生的事件。 这部分将在“事

  • ui

    继承自 Composite 是所有控件的父级。可通过其访问状态栏、导航栏、抽屉控件和内容视图。 通过 “const {ui} = require('tabris');” 引入该对象。 属性 contentView Type: Composite 内容视图是构成应用主UI的控件的容器。覆盖整个应用界面。可将控件直接添加到内容视图中。 此属性只能在创建控件时设置。一旦设置,不能修改。 drawer T