简体   繁体   English

我无法在我的 macbook M1 上运行 uiautomatorviewer

[英]I cannot run uiautomatorviewer on my macbook M1

Machine机器
macBook Air M1 macBook Air M1

OS操作系统
macOS Big Sur Version 11.5.2 macOS 大苏尔版本 11.5.2

java -version java-版本

java version "1.8.0_301" java 版本“1.8.0_301”

Java(TM) SE Runtime Environment (build 1.8.0_301-b09) Java(TM) SE 运行时环境(build 1.8.0_301-b09)

Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode) Java HotSpot(TM) 64 位服务器虚拟机(内部版本 25.301-b09,混合模式)

bash_profile bash_profile

   export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home
   export PATH=$PATH:$JAVA_HOME/bin
   export PATH=$PATH:$JAVA_HOME/lib
   export MAVEN_HOME=/Users/XXX/Documents/apache-maven-3.8.2
   export M2=$MAVEN_HOME/bin
   export ANDROID_HOME=/Users/XXX/Library/Android/sdk
   export PATH=$PATH:/usr/local/git/bin:/usr/local/bin:
   export PATH=$PATH:$ANDROID_HOME/platform-tools
   export PATH=$PATH:$ANDROID_HOME/tools
   export PATH=$PATH:$ANDROID_HOME/tools/bin
   export PATH=$PATH:$ANDROID_HOME/emulator
   export PATH=$PATH:$ANDROID_HOME/build-tools
   export PATH=$PATH:$ANDROID_HOME/tools/lib/x86_64

On running uiautomatorviewer on terminal i get below exception在终端上运行 uiautomatorviewer 我得到以下异常

java.lang.NullPointerException
at org.eclipse.swt.widgets.Control.internal_new_GC(Unknown Source)
at org.eclipse.swt.graphics.GC.<init>(Unknown Source)
at org.eclipse.swt.graphics.GC.<init>(Unknown Source)
at org.eclipse.swt.widgets.Tree.computeSize(Unknown Source)
at org.eclipse.swt.layout.GridData.computeSize(Unknown Source)
at org.eclipse.swt.layout.GridLayout.layout(Unknown Source)
at org.eclipse.swt.layout.GridLayout.computeSize(Unknown Source)
at org.eclipse.swt.widgets.Composite.computeSize(Unknown Source)
at org.eclipse.swt.custom.SashFormLayout.computeSize(Unknown Source)
at org.eclipse.swt.widgets.Composite.computeSize(Unknown Source)
at org.eclipse.swt.custom.SashFormLayout.computeSize(Unknown Source)
at org.eclipse.swt.widgets.Composite.computeSize(Unknown Source)
at org.eclipse.swt.layout.FillData.computeSize(Unknown Source)
at org.eclipse.swt.layout.FillLayout.computeChildSize(Unknown Source)
at org.eclipse.swt.layout.FillLayout.computeSize(Unknown Source)
at org.eclipse.swt.widgets.Composite.computeSize(Unknown Source)
at org.eclipse.swt.layout.GridData.computeSize(Unknown Source)
at org.eclipse.swt.layout.GridLayout.layout(Unknown Source)
at org.eclipse.swt.layout.GridLayout.layout(Unknown Source)
at org.eclipse.swt.widgets.Composite.updateLayout(Unknown Source)
at org.eclipse.swt.widgets.Composite.updateLayout(Unknown Source)
at org.eclipse.swt.widgets.Composite.layout(Unknown Source)
at org.eclipse.swt.widgets.Display.runSettings(Unknown Source)
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at com.android.uiautomator.UiAutomatorViewer.main(UiAutomatorViewer.java:78)

Please let me know if anyone was able experience a similar issue and has a solution.请让我知道是否有人能够遇到类似的问题并有解决方案。

Thanks, Nahid谢谢,纳希德

I had the below configurations and Java version is 1.8.0_332我有以下配置和 Java 版本是 1.8.0_332

export ANDROID_SDK=$HOME/Library/Android/sdk
export PATH=$ANDROID_SDK/emulator:$PATH
export PATH=$ANDROID_SDK/tools:$PATH
export PATH=$ANDROID_SDK/tools/bin:$PATH
export PATH=$ANDROID_SDK/platform-tools:$PATH
export ANDROID_SDK_ROOT=$ANDROID_SDK 
export ANDROID_AVD_HOME=$HOME/.android/and
alias emulator='$ANDROID_SDK/emulator/emulator'

In my case, the below solution worked like a charm就我而言,以下解决方案非常有效

https://github.com/android/android-test/issues/911#issuecomment-849389068 https://github.com/android/android-test/issues/911#issuecomment-849389068

  1. Download the swt.jar, from https://download.eclipse.org/eclipse/downloads/index.html , rename downloaded swt.jar to swt2.jar下载swt.jar,从https://download.eclipse.org/eclipse/downloads/index.html ,将下载的swt.jar重命名为swt2.jar
  2. copy swt2.jar to Library/Android/sdk/tools/lib/x86_64/ [Note: DO NOT REPLACE/DELETE]swt2.jar复制到Library/Android/sdk/tools/lib/x86_64/ [注意:请勿替换/删除]
  3. Launch uiautomatorviewer启动 uiautomatorviewer

I have found a better alternative than uiautomator - appium inspector.我找到了一个比 uiautomator 更好的替代品 - appium inspector。

If you have installed appium GUI on your mac follow below steps:如果您在 Mac 上安装了 appium GUI,请按照以下步骤操作:

  1. Start appium server启动appium服务器
  2. Click the search button to start the appium inspector点击搜索按钮启动appium inspector 在此处输入图像描述
  3. Provide below your android configurations {在下方提供您的 android 配置 {
    "platformName": "Android", “平台名称”:“安卓”,
    "platformVersion": "8.1", //<> “平台版本”:“8.1”,//<>
    "app": "/path/to/.apk/file", "deviceName": "c33143r", //<<get device name using: $ adb devices>> "app": "/path/to/.apk/file", "deviceName": "c33143r", //<<get device name using: $ adb devices>>
    "automationName": "UiAutomator2" “自动化名称”:“UiAutomator2”
    } }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM