Java .NoClassDefFoundError在IntelliJ中使用AndroidSDK jar文件时出错

Java .NoClassDefFoundError在IntelliJ中使用AndroidSDK jar文件时出错,java,android,intellij-idea,android-sdk-tools,Java,Android,Intellij Idea,Android Sdk Tools,我试图调用uiautomatorviewer的Android库中的一个方法,该库位于C:\Users\krrishna\AppData\Local\Android\sdk\tools\lib\uiautomatorviewer.jar。我尝试通过从IntelliJ->Project右键单击->打开模块设置->jars目录->完成添加此库 这里的设备对象是从库返回的IDevice,当我调用AndroidDebugBridge.getDevices()时,我得到了正确的设备数量 device.get

我试图调用uiautomatorviewer的Android库中的一个方法,该库位于
C:\Users\krrishna\AppData\Local\Android\sdk\tools\lib\uiautomatorviewer.jar
。我尝试通过从IntelliJ->Project右键单击->打开模块设置->jars目录->完成添加此库

这里的设备对象是从库返回的IDevice,当我调用
AndroidDebugBridge.getDevices()
时,我得到了正确的设备数量

device.getHierarchyViewer().getFocusedWindowName();
线程“AWT-EventQueue-0”java.lang.NoClassDefFoundError中出现异常:org/eclipse/swt/graphics/Device
位于com.android.chimpchat.hierarchyviewer.hierarchyviewer.setupViewServer(hierarchyviewer.java:47)
在com.android.chimpchat.hierarchyviewer.hierarchyviewer.(hierarchyviewer.java:43)
位于com.android.chimpchat.adb.AdbChimpDevice.getHierarchyViewer(AdbChimpDevice.java:95)
在com.myandroidcode.android.jframes.JwtFrame$22.mousererelease(MainFrame.java:621)
位于java.awt.Component.ProcessMouseeEvent(Component.java:6533)
位于java.awt.Component.processEvent(Component.java:6298)
位于java.awt.Container.processEvent(Container.java:2236)
在java.awt.Window.processEvent(Window.java:2025)
位于java.awt.Component.dispatchEventImpl(Component.java:4889)
位于java.awt.Container.dispatchEventImpl(Container.java:2294)
位于java.awt.Window.dispatchEventImpl(Window.java:2746)
位于java.awt.Component.dispatchEvent(Component.java:4711)
位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
在java.awt.EventQueue.access$500(EventQueue.java:97)
在java.awt.EventQueue$3.run(EventQueue.java:709)
在java.awt.EventQueue$3.run(EventQueue.java:703)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
位于java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
在java.awt.EventQueue$4.run(EventQueue.java:731)
在java.awt.EventQueue$4.run(EventQueue.java:729)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
位于java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
在java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)中
位于java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:105)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
在java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
原因:java.lang.ClassNotFoundException:org.eclipse.swt.graphics.Device
位于java.net.URLClassLoader.findClass(URLClassLoader.java:381)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 30多

似乎您正在使用的库本身需要一些其他库。例如,如果您从maven下载库,则有一个名为“编译依赖项”的部分显示了使用以下库所需的库,如图所示。
我想出来了。它在下面的文件中寻找一个名为DeviceBridge的库,但它无法从其他包含DeviceBridge.java类的.jar文件中引用它。现在我需要看看如何让它引用我的另一个.jar文件

com.android.chimpchat.hierarchyviewer.HierarchyViewer.setupViewServer(HierarchyViewer.java:47)

在我的例子中,我如何知道我缺少哪些库?我知道有很多Android SDK库,但我只想在需要时添加其他库。你到底在使用什么库?这并不能真正回答问题。我们都认为缺少一个特定的罐子,但它是什么?
com.android.chimpchat.hierarchyviewer.HierarchyViewer.setupViewServer(HierarchyViewer.java:47)