一行命令解决uiautomatorviewer.bat闪退问题,jdk17实测依然适用,无需低版本jdk

step1,cmd运行uiautomatorviewer.bat,分析出错原因

C:\Users\Administratorl\AppData\Local\Android\Sdk\tools\bin>uiautomatorviewer.bat

 

报错

-Djava.ext.dirs=..\lib\x86_64;..\lib is not supported. Use -classpath instead.

Error: Could not create the Java Virtual Machine.

Error: A fatal exception has occurred. Program will exit.

原因为新版jdk不支持-Djava.ext.dirs写法

 

step2,分析.bat批处理代码,找到各类库的地址

分析uiautomatorviewer.bat最后几行代码

SetPath

set javaextdirs=%swt_path%;%frameworkdir%

call "%java_exe%" "-Djava.ext.dirs=%javaextdirs%" "-Dcom.android.uiautomator.bindir=%prog_dir%" -jar %jarpath% %*

 

%java_exe%为java.exe所在目录

%javaextdirs%为swt.jar所在目录(注意:\swt.jar不能少,其为标准控件工具包)

%prog_dir%为uiautomatorviewer-26.0.0-dev.jar所在目录

%jarpath,新版本jdk用classpath时,通过对uiautomatorviewer-26.0.0-dev.jar解包发现,为com.android.uiautomator.UiAutomatorViewer

 

step3,使用新版jdk的classpath语法直接运行uiautomatorviewer

java.exe所在目录为:

C:\Program Files\Java\jdk-17\bin\java.exe

 

swt.jar所在目录为:

C:\Users\Administratorl\AppData\Local\Android\Sdk\tools\lib\x86_64\swt.jar

 

uiautomatorviewer-26.0.0-dev.jar所在目录为:C:\Users\Administratorl\AppData\Local\Android\Sdk\tools\lib\uiautomatorviewer-26.0.0-dev.jar

 

最后整合为一句代码:

"C:\Program Files\Java\jdk-17\bin\java.exe" -classpath "C:\Users\Administratorl\AppData\Local\Android\Sdk\tools\lib\x86_64\swt.jar;C:\Users\Administratorl\AppData\Local\Android\Sdk\tools\lib\uiautomatorviewer-26.0.0-dev.jar" com.android.uiautomator.UiAutomatorViewer

cmd直接运行得到如图所示

eaf90a79f1fa4b7cae0b15803b0bf0ae.jpg

 

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值