3

我正在尝试在 MacOS 10.15 上使用 uiautomatorviewer。我收到以下错误。

在此处输入图像描述

uiautomatorviewer在 MacOS 10.13 上进行了测试。它工作得很好。

这是错误消息:

Unexpected error while obtaining UI hierarchy java.lang.reflect.InvocationTargetException  on latest Mac OS

这是日志详细信息

Unhandled event loop exception during blocked modal context.
org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NullPointerException)
    at org.eclipse.swt.SWT.error(Unknown Source)
    at org.eclipse.swt.SWT.error(Unknown Source)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Unknown Source)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Unknown Source)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:173)
    at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:388)
    at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507)
    at com.android.uiautomator.actions.ScreenshotAction.run(ScreenshotAction.java:85)
    at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
    at ialogs.ProgressMonitorDialog$ProgressMonitor.subTask(ProgressMonitorDialog.java:234)

4

2 回答 2

4

SDK版本发生此问题。我通过执行以下操作解决了我的问题 -

将您的 Java 版本降级到“1.8.0_231”,您可以在此处获取:https ://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html

在你的 bash_profile 中设置环境。要做到这一点

去MAC DISK找到“.bash_profile”打开,编辑并设置路径

例子:

export ANDROID_HOME=~/Library/Android/sdk
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home

export PATH=$PATH:$JAVA_HOME/bin
export PATH=$PATH:$JAVA_HOME/lib
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/build-tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/tools/lib/x86_64

退出终端并重新打开类型“uiautomatorviewer”并按回车键...

就是这样。

于 2020-07-30T12:35:16.050 回答
0

TL;DR:在我的案例中起作用的是对我使用的 Java 版本进行降级。

为了快速做到这一点,我建议安装sdkman并安装当前 Java 版本的较低版本。

在我的情况下,我使用的是8.0.262.hs-adpt(如 SDKman 中所列)并且遇到了终端上没有可见文本/空指针异常等问题。

降级到 后8.0.252.hs-adpt,所有错误都消失了,目前正在运行。


详细步骤:

  1. 安装 SDKman(一班curl -s "https://get.sdkman.io" | bash :)
  2. 打开一个新标签/终端
  3. 在 SDKman 中搜索低于8.0.262: sdk list java(在我的情况下为AdoptOpenJDK 8.0.252.hs-adpt )的 JDK
  4. 安装它sdk install java <VERSION_YOU_CHOOSE>
  5. 在安装 JDK 的同一终端中启动uiautomatorviewer

sdk use java <VERSION>如果您已经安装了另一个 JDK,或者sdk default java <VERSION>您希望始终指向特定版本,您也可以使用它。

于 2020-07-27T08:32:44.380 回答