首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Uiautomatorviewer异常

Uiautomatorviewer异常
EN

Stack Overflow用户
提问于 2018-02-10 07:02:42
回答 3查看 2.5K关注 0票数 3

由于StackExchange建议我不要在以前的员额上寻求帮助或澄清,所以我正在做一个新的线程。

在Windows10x64上,我下载了月食SWT (在下载页面的第二至最后一节),将ANDROID_SWT环境变量设置为<download location>\swt.jar,并试图再次从cmd运行uiautomatorviewer,但只收到了与使用与eclipse捆绑的SWT相同的错误消息:

代码语言:javascript
复制
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

有没有其他人遇到过这个错误,如果是的话,根本原因是什么?

提前感谢您的时间和帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-02-10 08:36:30

精确地跟随这些指示。我错误地尝试下载Eclipse以解决其他问题;在CLASSPATHANDROID_SWT环境变量中设置这个不同的SWT版本会导致此异常。

票数 -1
EN

Stack Overflow用户

发布于 2021-07-29 09:05:42

在我的例子中,将ANDROID_SWT添加到环境变量或编辑路径并不能解决问题。因此,我通过问题的帮助找到了一个不同的解决方案。

运行uiautomatorviewer.bat并输出:

代码语言:javascript
复制
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/并搜索缺少的类。在本例中,搜索类:

代码语言:javascript
复制
org.eclipse.swt.widgets.Control

就你的情况而言,它是:

代码语言:javascript
复制
org.eclipse.swt.widgets.Listener

错误中的类的名称可以更改,但是所有需要的类都来自将要下载的.jar文件。

在结果中单击:

代码语言:javascript
复制
[CLASS] org.eclipse.swt.widgets.Control

或者你的案子:

代码语言:javascript
复制
[CLASS] org.eclipse.swt.widgets.Listener

下载您的操作系统的最新和合适的文件。是目前适用于Windowsx86_64的最新技术。

将下载的.jar文件放入:

C:\Users{userId}\AppData\Local\Android\Sdk\tools\lib

或您的操作系统的等效路径。

现在,uiautomatorviewer.bat应该没有任何问题地运行。

票数 2
EN

Stack Overflow用户

发布于 2020-05-06 18:11:34

确保在Android中选择的JDK位置与环境变量中的JDK设置相同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48718161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档