我正在尝试在终端中运行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。
我在这里遗漏了什么?我将不胜感激任何帮助。
答案 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平台和用于路径变量的构建工具。
要么
.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)
答案 7 :(得分:0)
我使用的是 Ubuntu 20.04;从 here 下载 java8 压缩档案,将其解压缩到某个地方, 然后使用一些文本编辑器(如 gedit)打开 uiautomatorviewer,并替换
javaCmd="java"
到
javaCmd="<you uncompressed java8 dir location>/bin/java"
那么它可能会起作用。