由于StackExchange建议我不要求previously existing post的帮助或澄清,我正在制作新的帖子。
在Windows 10x64上,我下载了Eclipse SWT(在“下载”页面的倒数第二部分),将我的ANDROID_SWT
环境变量设置为<download location>\swt.jar
,并尝试运行{{ 1}}再次来自uiautomatorviewer
,只是收到与我尝试使用与eclipse捆绑的SWT时相同的错误消息:
cmd
是否有其他人遇到此错误,如果是,那么根本原因是什么?
提前感谢您的时间和帮助!
答案 0 :(得分:1)
就我而言,将 ANDROID_SWT 添加到环境变量或编辑 PATH 并不能解决问题。因此,我通过 this 问题的帮助找到了不同的解决方案。
运行 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
为您的操作系统下载最新且合适的文件。 This 是最新的,目前适用于 Windowsx86_64。
将下载的.jar文件放入:
<块引用>C:\Users\{userId}\AppData\Local\Android\Sdk\tools\lib
或您操作系统的等效路径。
现在 uiautomatorviewer.bat 应该可以正常运行了。
答案 1 :(得分:0)
准确地关注these instructions。我错误地尝试下载Eclipse SWT以解决我遇到的其他问题;在CLASSPATH
和ANDROID_SWT
环境变量中设置此不同的SWT版本会导致此异常。
答案 2 :(得分:0)