0


一行命令解决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


本文转载自: https://blog.csdn.net/2401_82756020/article/details/140701632
版权归原作者 2401_82756020 所有, 如有侵权,请联系我们删除。

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

还没有评论