通过远程查看器VNC,我可以在远程计算机上引导android模拟器。
emulator -avd emu1 但是通过远程机器上的SSH,我得到了错误
emulator: INFO: QtLogger.cpp:68: Warning: could not connect to display ((null):0, (null))
emulator: INFO: QtLogger.cpp:68: Info: Could not load the Qt platform plugin "xcb" in "/opt/androidtest/android-sdk/emulator/lib64/qt/plugins" even though it was found. ((null):0, (null))
Fatal: This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: xcb.
((null):0, (null))
emulator: INFO: QtLogger.cpp:68: Fatal: This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: xcb.
((null):0, (null))但是,如果我通过SSH无头引导仿真器,则模拟器启动。
emulator -avd emu1 -no-window发布于 2022-06-18 00:28:50
当您通过SSH进行连接时,您处于命令行会话中,与UI分离。作为aa结果,没有指向显示的链接,这是如下所示的错误:
emulator: INFO: QtLogger.cpp:68: Warning: could not connect to display ((null):0, (null))在VNC中,模拟器可以很容易地连接到本地显示器。
你可以试试X窗口显示远程处理-
导出DISPLAY=0:0
并且假设在窗口会话上允许显示远程处理(xhost +),那么模拟器窗口将弹出。iptables/netfilter可能会阻止这一点,顺便说一句,所以尝试使用/不使用,然后添加一个特定的规则(如果内存可用,则添加TCP 6000 )。
注意,虽然这很有效,但'xhost +‘被认为是错误的做法(因为它允许GUI会话被劫持)。另外,如果您是SSHing,那么您将无法真正看到GUI (除非您是在另一个Linux上,在这种情况下,DISPLAY=IP_youre_SSH_ing_from:0和xhost +在您的ssh‘’ing主机上实际上将为您提供一个远程显示)。
发布于 2022-06-20 04:03:14
确切地说,从何处开始会话并不重要,而是DISPLAY环境变量包含的值,它指示模拟器将用于显示窗口和接收鼠标和键盘事件的XWindows显示。
然后,您可以从SSH或VNC启动会话,并将DISPLAY环境变量设置为指向您可以访问的X服务器。
客户端程序(在本例中是模拟器)通过检查DISPLAY环境变量知道要连接到哪个显示器。
此外,正如在一些注释中提到的,可以使用ssh -X或ssh -Y来启用X11转发。在这种情况下,可以验证DISPLAY环境变量是如何自动设置为转发显示的。
https://stackoverflow.com/questions/59471970
复制相似问题