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直接运行得到如图所示
版权归原作者 2401_82756020 所有, 如有侵权,请联系我们删除。