Невозможно запустить uiautomatorviewer.bat из инструментов Android SDK
Я пытаюсь бежать uiautomatorviewer.bat
из Android SDK инструменты.
На моей предыдущей системе все работало нормально, теперь нет.
Чтобы он работал до того, как я использовал для редактирования *.bat
файл путем изменения последней строки в *.bat
файл
@echo off
rem Copyright (C) 2012 The Android Open Source Project
rem
rem Licensed under the Apache License, Version 2.0 (the "License");
rem you may not use this file except in compliance with the License.
rem You may obtain a copy of the License at
rem
rem http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.
rem don't modify the caller's environment
setlocal
rem Set up prog to be the path of this script, including following symlinks,
rem and set up progdir to be the fully-qualified pathname of its directory.
set prog=%~f0
rem Change current directory and drive to where the script is, to avoid
rem issues with directories containing whitespaces.
cd /d %~dp0
rem Get the CWD as a full path with short names only (without spaces)
for %%i in ("%cd%") do set prog_dir=%%~fsi
rem Check we have a valid Java.exe in the path.
set java_exe=
call ..\lib\find_java.bat
if not defined java_exe goto :EOF
for /f %%a in ("%APP_HOME%\lib\uiautomatorviewer-25.3.2.jar") do set jarfile=%%~nxa
set frameworkdir=.
if exist %frameworkdir%\%jarfile% goto JarFileOk
set frameworkdir=..\lib
if exist %frameworkdir%\%jarfile% goto JarFileOk
set frameworkdir=..\framework
:JarFileOk
set jarpath=%frameworkdir%\%jarfile%
if not defined ANDROID_SWT goto QueryArch
set swt_path=%ANDROID_SWT%
goto SwtDone
:QueryArch
for /f "delims=" %%a in ('%frameworkdir%\..\bin\archquery') do set swt_path=%frameworkdir%\%%a
:SwtDone
if exist "%swt_path%" goto SetPath
echo SWT folder '%swt_path%' does not exist.
echo Please set ANDROID_SWT to point to the folder containing swt.jar for your platform.
exit /B
:SetPath
set javaextdirs=%swt_path%;%frameworkdir%
call "%java_exe%" "-Djava.ext.dirs=%javaextdirs%" "-Dcom.android.uiautomator.bindir=C:\Android\sdk\tools" -jar %jarpath% %*
Теперь, когда я пытаюсь запустить uiautomatorviewer.bat, я вижу эту ошибку:
C:\Android\Sdk\tools\bin>uiautomatorviewer
-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.
Я искал различные решения, как использовать -classpath, но ни одно из них не помогло
4 ответа
Это не проблема.bat файла.
У меня была такая же проблема, потому что я использовал Java 10.
Когда я понижаю Java 10 до Java 8, он снова начинает работать.
Не забудьте установить переменные, как описано здесь http://www.automationtestinghub.com/setup-java-environment-variables/.
Моя версия Java, над которой сейчас работает uiautomatorviewer, - это jdk-8u171-windows-x64.exe.
Установка jdk8 со страницы загрузки Java
Он поставляется с JRE, вам необходимо иметь JRE в
JAVA_HOME
путь, независимо от того, какую версию JDK вы используете.
Просто скачайте jdk8, и вы сможете запустить
uiautomatorviewer.bat
Понизьте версию до Java8, которая доступна в C:\Program Files\Java\jre1.8.0_201
Добавить в переменной среды Java_Home.
Откройте новое окно cmd в C: \ Users
Введите uiautomatorviewer.bat
Это сработает.
Это сработало для меня после удаления java 11 и установки версии java jdk 1.8.0_202. После этого установите переменные среды JAVA_HOME на 64-битный путь jre C:\Program Files\Java\jdk1.8.0.202