You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行uiautomatorviewer报错:无法创建Java虚拟机,疑与Java版本有关

解决uiautomatorviewer在Java 10下启动失败的问题

你猜的没错,这个问题完全是Java版本导致的。从Java 9开始,-Djava.ext.dirs参数就被弃用了,而uiautomatorviewer的默认启动脚本还在使用这个过时的参数,所以才会抛出"无法创建Java虚拟机"的致命错误。

下面给你两个可行的解决办法:

方法一:修改uiautomatorviewer启动脚本

这是最直接的修复方式,不需要更换Java版本:

  1. 找到你的Android SDK路径下的启动脚本:/Users/<Username>/Library/Android/sdk/tools/bin/uiautomatorviewer
  2. 用文本编辑器打开这个脚本,找到包含-Djava.ext.dirs的那一行(大概是脚本里的exec命令行)
  3. 把原来的-Djava.ext.dirs=/xxx/xxx:/xxx/xxx替换成-classpath "/xxx/xxx:/xxx/xxx"——也就是把参数从-Djava.ext.dirs改成-classpath,同时保留原来的两个路径(用冒号分隔)
  4. 确保修改后的命令行最后跟上主类:com.android.uiautomator.UiAutomatorViewer
    举个修改后的完整例子:
    exec "$java_exe" -classpath "/Users/<Username>/Library/Android/sdk/tools/lib/x86_64:/Users/<Username>/Library/Android/sdk/tools/lib" com.android.uiautomator.UiAutomatorViewer "$@"
    
  5. 保存脚本后,重新在终端运行uiautomatorviewer,应该就能正常启动了。

方法二:降级Java版本到8

如果不想修改脚本,最简单的方式就是切换到Java 8运行uiautomatorviewer:

  • 安装Java 8 JDK(Oracle或OpenJDK都可以)
  • 用工具(比如jenv)或者直接修改环境变量JAVA_HOME,把Java 8设为当前使用的版本
  • 验证版本:运行java -version确认显示的是Java 8
  • 再启动uiautomatorviewer,就不会有参数兼容问题了

内容的提问来源于stack exchange,提问作者Praveen Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:16:18