由于StackExchange建议我不要在以前的员额上寻求帮助或澄清,所以我正在做一个新的线程。
在Windows10x64上,我下载了月食SWT (在下载页面的第二至最后一节),将ANDROID_SWT环境变量设置为<download location>\swt.jar,并试图再次从cmd运行uiautomatorviewer,但只收到了与使用与eclipse捆绑的SWT相同的错误消息:
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Listener
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Listener
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 7 more有没有其他人遇到过这个错误,如果是的话,根本原因是什么?
提前感谢您的时间和帮助!
发布于 2018-02-10 08:36:30
精确地跟随这些指示。我错误地尝试下载Eclipse以解决其他问题;在CLASSPATH和ANDROID_SWT环境变量中设置这个不同的SWT版本会导致此异常。
发布于 2021-07-29 09:05:42
在我的例子中,将ANDROID_SWT添加到环境变量或编辑路径并不能解决问题。因此,我通过这问题的帮助找到了一个不同的解决方案。
运行uiautomatorviewer.bat并输出:
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Control
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:650)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:632)
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Listener
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)解决方案:
转到:https://www.findjar.com/并搜索缺少的类。在本例中,搜索类:
org.eclipse.swt.widgets.Control就你的情况而言,它是:
org.eclipse.swt.widgets.Listener错误中的类的名称可以更改,但是所有需要的类都来自将要下载的.jar文件。
在结果中单击:
[CLASS] org.eclipse.swt.widgets.Control或者你的案子:
[CLASS] org.eclipse.swt.widgets.Listener下载您的操作系统的最新和合适的文件。这是目前适用于Windowsx86_64的最新技术。
将下载的.jar文件放入:
C:\Users{userId}\AppData\Local\Android\Sdk\tools\lib
或您的操作系统的等效路径。
现在,uiautomatorviewer.bat应该没有任何问题地运行。
发布于 2020-05-06 18:11:34
确保在Android中选择的JDK位置与环境变量中的JDK设置相同。

https://stackoverflow.com/questions/48718161
复制相似问题