Я пытаюсь запустить uiautomatorviewer (из инструментов Android SDK) в контейнере докера. Но я получаю ниже ошибку при запуске док-контейнера.
Exception in thread "main" org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.widgets.Display.createDisplay(Unknown Source)
at org.eclipse.swt.widgets.Display.create(Unknown Source)
at org.eclipse.swt.graphics.Device.<init>(Unknown Source)
at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
at org.eclipse.swt.widgets.Display.getDefault(Unknown Source)
at org.eclipse.swt.widgets.Shell.<init>(Unknown Source)
at org.eclipse.swt.widgets.Shell.<init>(Unknown Source)
at org.eclipse.jface.window.Window.createShell(Window.java:487)
at org.eclipse.jface.window.Window.create(Window.java:430)
at org.eclipse.jface.window.Window.open(Window.java:790)
at com.android.uiautomator.UiAutomatorViewer.main(UiAutomatorViewer.java:78)
Я попытался поделиться файлом .Xauthority с контейнером и использовал ту же самую команду ниже для запуска контейнера
docker run --privileged -d -p 4723:4723 -v /dev/bus/usb:/dev/bus/usb -v /home/app/build/outputs/apk/debug:/root/tmp -v $HOME/.Xauthority:/root/.Xauthority:rw --env="DISPLAY" --name container-sdk local/sdk:latest
Выдержка из Dockerfile
FROM ubuntu:16.04
WORKDIR /root
***** downloads Android SDK ***
CMD ["sh", "-c", "export DISPLAY=':0.0' & uiautomatorviewer"]
Я успешно запустил браузер Firefox внутри док-контейнера, просто чтобы убедиться, что я могу запускать приложения с графическим интерфейсом внутри контейнера. Но uiautomatorviewer запускается не так, как Firefox. Вместо этого он выдает исключение.
Любая помощь приветствуется, спасибо.