【问题标题】:Uiautomatorviewer.bat removed from Android SDK?从 Android SDK 中删除 Uiautomatorviewer.bat?
【发布时间】:2021-07-13 15:46:58
【问题描述】:
我今天想使用uiautomatorviewer.bat,但是当我单击它时,它会自行删除。这通常发生在文件有更新并且 Android Studio 以某种方式识别它时。 layout inspector 现在是 uiautomatorviewer 的替代品吗?由于文档仍然提到该工具,例如
https://developer.android.com/training/testing/ui-automator,我不确定。
Android-SDK 附带的uiautomator.jar 仍有几个版本,
例如例如在Android\Sdk\platforms\android-30\ 和Android\Sdk\tools\lib\ 中。
但当然,您不能直接调用 JAR 文件,因为缺少某些依赖项(路径)。我尝试使用一些旧的uiautomatorviewer.bat,但由于权限问题无法将其放入Android\Sdk\tools\bin\。调整路径将是一团糟。
由于某些信息,我想在layout inspector 上使用uiautomatorviewer,而我在layout inspector 的输出中找不到这些信息。
操作系统:Windows 10
Android Studio:4.2.2,包括最新的 SDK 工具。
【问题讨论】:
标签:
android
uiautomatorviewer
【解决方案1】:
由于uiautomatorviewer.bat 在最新的 Android SDK 中不再可用,我创建了自己的版本:
@echo off
rem don't modify the caller's environment
setlocal
set prog_dir=E:\Android\Android\Sdk\tools
rem depends on your environment, either x86_64 or x86
set swt_path=E:\Android\Android\Sdk\tools\lib\x86_64
set frameworkdir=E:\Android\Android\Sdk\tools\lib
set jarfile=uiautomatorviewer-26.0.0-dev.jar
set jarpath=%frameworkdir%\%jarfile%
rem we need to use Java8 otherwise the option -Djava.ext.dirs= is not available anymore
set java_exe=C:\Program Files\Java\jdk1.8.0_181\bin\java.exe
set javaextdirs=%swt_path%;%frameworkdir%
call "%java_exe%" "-Djava.ext.dirs=%javaextdirs%" "-Dcom.android.uiautomator.bindir=%prog_dir%" -jar %jarpath% %*
您只需要相应地调整路径。更好的方法是使用环境变量ANDROID_HOME 重构脚本。注意:您不能使用任何 java 版本 > 1.8,因为这些版本不再支持选项 -Djava.ext.dirs。
【解决方案2】:
在我的设置中,我需要对@auermich .bat 添加一些更改
问题在于使用 Program Files 作为 Android SDK 的主页
@echo off
setlocal
set prog_dir=C:\Program Files\Android\androidSdkWindows\tools
set swt_path=C:\Program Files\Android\androidSdkWindows\tools\lib\x86_64
set frameworkdir=C:\Program Files\Android\androidSdkWindows\tools\lib
set jarpath="C:\Program Files\Android\androidSdkWindows\tools\lib\uiautomatorviewer-26.0.0-dev.jar"
set java_exe=C:\Program Files\Java\jdk1.8.0_202\bin\java.exe
set javaextdirs=%swt_path%;%frameworkdir%
call "%java_exe%" "-Djava.ext.dirs=%javaextdirs%" "-Dcom.android.uiautomator.bindir=%prog_dir%" -jar %jarpath% %*