uiautomatorviewer - 错误:无法创建Java虚拟机

时间:2018-03-27 06:46:09

标签: android uiautomatorviewer

我正在尝试在终端中运行uiautomatorviewer。我收到了这个错误:

-Djava.ext.dirs=/Users/<Username>/Library/Android/sdk/tools/lib/x86_64:/Users/<Username>/Library/Android/sdk/tools/lib is not supported.  Use -classpath instead.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

我认为这可能与我正在使用的java版本有关。以下是java -version的输出:

java version "10" 2018-03-20
Java(TM) SE Runtime Environment 18.3 (build 10+46)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10+46, mixed mode)

我已经看过this question on SO,但它建议降级为java 8。

我在这里遗漏了什么?我将不胜感激任何帮助。

8 个答案:

答案 0 :(得分:4)

uiautomatorviewer在Java版本8上运行良好。您无需将Java版本降级到1.8。而是将此方法添加到.bash_profile

uiautomator() {
        export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
        export ANDROID_HOME=/Users/<username>/Library/Android/sdk
        export PATH=$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools:$ANDROID_HOME/tools
        /Users/<username>/Library/Android/sdk/tools/bin/uiautomatorviewer
}

这会将JAVA_HOME路径设置为1.8,并包括android平台和用于路径变量的构建工具。

要么

  1. 重新启动终端以反映更改或
  2. 在当前终端中用.bash_profile编译. .bash_profile使其得到反映。

开始在终端中输入uiautomator。它应该可以工作!

答案 1 :(得分:3)

右键单击uiautomator.bat文件并单击编辑。(应该打开带有代码的记事本)

滚动并找到“rem Check we have a valid Java.exe in the path.”

确保我下面的下两行代码应该相同,即进行更改使其相同。

set java_exe=C:\Program Files\Android\Android Studio\jre\bin\java.exe

远程调用..\lib\find_java.bat 保存文件和 它会起作用

答案 2 :(得分:1)

据我所知,

uiautomatorviewer与java10不兼容。切换到java8为我修复了它。

答案 3 :(得分:0)

我也遇到了同样的问题,我在uiautomatorviewer文件中执行了以下操作。 代替此行:

exec“ $ {javaCmd}” $ javaOpts -Djava.ext.dirs =“ $ frameworkdir” -Dcom.android.uiautomator.bindir =“ $ progdir” -jar“ $ jarpath”“ $ @” < / em>

我使用Classpath替换了它,并且有效:

exec java -Xmx1600M -XstartOnFirstThread -Dcom.android.uiautomator.bindir = / your-sdk-path / tools -cp /your-sdk-path/tools/lib/x86_64/swt.jar:/your -sdk-path / lib / uiautomatorviewer.jar:/ your-sdk-path / tools / lib / .jar :。 com.android.uiautomator.UiAutomatorViewer *

用系统上sdk的位置替换您的sdk路径。您也可以直接在终端上尝试此命令,它将在不对Java进行任何更改的情况下启动“ UiAutomatorViewer”。

答案 4 :(得分:0)

以下对我有用(Ubuntu 16.04,Java 11):

$ export YOUR_SDK_PATH="/home/user/Android/Sdk/"

$ java -Xmx1600M -Dcom.android.uiautomator.bindir="$YOUR_SDK_PATH/tools" -cp "$YOUR_SDK_PATH/tools/lib/x86_64/swt.jar":"$YOUR_SDK_PATH/tools/lib/*" com.android.uiautomator.UiAutomatorViewer

答案 5 :(得分:0)

向后移Java 8对我来说已经解决了这个问题。安装Java 8之后,请确保您的环境变量未指向先前安装的Java。

答案 6 :(得分:0)

改用布局检查器。它更好。

enter image description here

答案 7 :(得分:0)

我使用的是 Ubuntu 20.04;从 here 下载 java8 压缩档案,将其解压缩到某个地方, 然后使用一些文本编辑器(如 gedit)打开 uiautomatorviewer,并替换

javaCmd="java"

javaCmd="<you uncompressed java8 dir location>/bin/java"

那么它可能会起作用。