uiautomatorviewer — Ошибка: не удалось создать виртуальную машину Java

Я пытаюсь запустить uiautomatorviewer в терминале. Я получаю эту ошибку:

-Djava.ext.dirs=/Users/<Username>/Library/Android/sdk/tools/lib/x86_64:/Users/<Username>/Library/Android/sdk/tools/lib is not supported.  Use -classpath instead.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

Я думаю, что это может быть связано с версией Java, которую я использую. Вот вывод java -version:

java version "10" 2018-03-20
Java(TM) SE Runtime Environment 18.3 (build 10+46)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10+46, mixed mode)

Я уже видел этот вопрос на SO, но он рекомендует перейти на Ява 8.

Я что-то пропустил здесь? Буду признателен за любую помощь.


person Praveen Singh    schedule 27.03.2018    source источник
comment
та же проблема, схожу с ума :D   -  person Gabriel Pita    schedule 02.05.2018


Ответы (8)


uiautomatorviewer отлично работает с Java версии 8. Вам не нужно понижать версию Java до 1.8. Вместо этого добавьте этот метод в .bash_profile

uiautomator() {
        export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
        export ANDROID_HOME=/Users/<username>/Library/Android/sdk
        export PATH=$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools:$ANDROID_HOME/tools
        /Users/<username>/Library/Android/sdk/tools/bin/uiautomatorviewer
}

Это установит путь JAVA_HOME на 1.8 и включает платформу Android и инструменты сборки для переменной пути.

Либо,

  1. Перезагрузите терминал, чтобы изменения отразились или
  2. Скомпилируйте свой .bash_profile на . .bash_profile в текущем терминале, чтобы отразить его.

Начните вводить uiautomator в своем терминале. Он должен работать !

person Tom Taylor    schedule 02.02.2019
comment
отличное решение! у меня было установлено несколько версий Java, и это сработало для меня - person Andrey Rankov; 06.03.2019
comment
Я рад, что это помогло :) - person Tom Taylor; 07.03.2019
comment
Как вы редактируете .bash_profile и где этот файл находится в Windows? - person Adamantus; 19.04.2020
comment
@Adamantus: я искал его только после того, как вы спросили, и наткнулся на этот клип (youtube.com/ смотреть?v=RQSkji4WJPc) попробуйте.. - person Tom Taylor; 20.04.2020

Djava.ext.dirs=/Users//Library/Android/sdk/tools/lib/x86_64:/Users//Library/Android/sdk/tools/lib не поддерживается. Вместо этого используйте -classpath. Ошибка: не удалось создать виртуальную машину Java. Ошибка: Произошло фатальное исключение. Программа будет закрыта.

У меня сработало следующее (Ubuntu 16.04, Java 11):

$ export YOUR_SDK_PATH="/home/user/Android/Sdk/"

$ java -Xmx1600M -Dcom.android.uiautomator.bindir="$YOUR_SDK_PATH/tools" -cp "$YOUR_SDK_PATH/tools/lib/x86_64/swt.jar":"$YOUR_SDK_PATH/tools/lib/*" com.android.uiautomator.UiAutomatorViewer
person Leo77    schedule 02.06.2019
comment
это заставляет его работать с Java 11? - person Tim Boland; 05.05.2021

Насколько я могу судить, uiautomatorviewer несовместим с java10. Переключение на java8 исправило это для меня.

person jgoldman33    schedule 12.07.2018

Щелкните правой кнопкой мыши файл uiautomator.bat и нажмите «Изменить». (Должен открыться блокнот с кодом)

Прокрутите и найдите rem Убедитесь, что в пути есть действительный Java.exe.

Убедитесь, что следующие 2 строки кода, которые я ниже, должны быть одинаковыми, т.е. внесите изменения, чтобы они были такими же.

установить java_exe = C:\Program Files\Android\Android Studio\jre\bin\java.exe

rem call ..\lib\find_java.bat Сохраните файл, и он будет работать

person sandra a.j    schedule 03.03.2021

Я также столкнулся с той же проблемой, и я сделал следующее в своем файле uiautomatorviewer. Вместо этой строки:

exec "${javaCmd}" $javaOpts -Djava.ext.dirs="$frameworkdir" -Dcom.android.uiautomator.bindir="$progdir" -jar "$jarpath" "$@"

Я заменил то же самое с помощью Classpath, и это сработало:

exec java -Xmx1600M -XstartOnFirstThread -Dcom.android.uiautomator.bindir=/your-sdk-path/tools -cp /your-sdk-path/tools/lib/x86_64/swt.jar:/your-sdk- path/lib/uiautomatorviewer.jar:/your-sdk-path/tools/lib/.jar:. com.android.uiautomator.UiAutomatorViewer*

Замените your-sdk-path расположением sdk в вашей системе. Вы также можете попробовать эту команду непосредственно на своем терминале, и она запустит «UiAutomatorViewer» без внесения каких-либо изменений в java.

person Michael Scofield    schedule 07.08.2018

Возвращение к Java 8 устранило проблему для меня. После того, как вы установили Java 8, убедитесь, что ваши переменные среды не указывают на ранее установленную Java.

person rajkabbur    schedule 20.11.2019

вместо этого используйте Layout Inspector. лучше.

введите здесь описание изображения

person Tim Boland    schedule 05.05.2021

Я использую Ubuntu 20.04; загрузите сжатый архив java8 с здесь, распакуйте его куда-нибудь, затем откройте uiautomatorviewer в текстовом редакторе, таком как gedit, и замените

javaCmd="java"

to

javaCmd="<you uncompressed java8 dir location>/bin/java"

Тогда это может сработать.

person JiajiaGu    schedule 04.06.2021