【问题标题】:uiautomatorviewer not working on latest MacOSuiautomatorviewer 无法在最新的 MacOS 上运行
【发布时间】:2020-07-22 11:25:02
【问题描述】:

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

我在 MacOS 10.13 上测试了uiautomatorviewer。效果很好。

这是错误信息:

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)

【问题讨论】:

    标签: android uiautomatorviewer


    【解决方案1】:

    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”并回车...

    就是这样。

    【讨论】:

    • 当必须使用 Java-11 时,解决方案与现实相去甚远。
    【解决方案2】:

    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 的 JDK:sdk list java(在我的情况下 AdoptOpenJDK 8.0.252.hs-adpt
    4. sdk install java <VERSION_YOU_CHOOSE>安装它
    5. 在您安装 JDK 的同一终端中启动 uiautomatorviewer

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

    【讨论】:

      猜你喜欢
      • 2021-10-31
      • 2022-10-25
      • 2019-08-17
      • 2021-12-15
      • 2017-01-30
      • 2020-10-20
      • 2021-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多