linux-faq.md 5.6 KB

Q: 为什么在 4k 或 HiDPI 显示器上运行 Defold 编辑器时显得特别小?

A: 如果您使用的是 GNOME,可以在运行 Defold 之前更改缩放因子。来源

$ gsettings set org.gnome.desktop.interface scaling-factor 2
$ ./Defold

A: 另一种解决方案,特别是当您希望按分数比例放大时,是修改 Defold/config 文件并在 vmargs 行添加 glass.gtk.uiScale来源

vmargs = -Dglass.gtk.uiScale=1.5,-Dfile.encoding=UTF-8,...
vmargs = -Dglass.gtk.uiScale=175%,-Dfile.encoding=UTF-8,...
vmargs = -Dglass.gtk.uiScale=192dpi,-Dfile.encoding=UTF-8,...

有关此值的更多信息,请参见 Arch Linux HiDPI wiki 文章

A: 如果您使用的是 KDE,可以设置 GDK_SCALE

$ GDK_SCALE=2 ./Defold

Q: 为什么在 Elementary OS 上鼠标点击会穿过编辑器到达下面的任何内容?

A: 像这样启动编辑器:

$ GTK_CSD=0 ./Defold

Q: 当打开集合或游戏对象时,Defold 编辑器崩溃,崩溃信息提到 com.jogamp.opengl

A: 在某些发行版(如 Ubuntu 18)上,Defold 使用的 jogamp/jogl 版本与系统上的 Mesa 版本存在问题。您可以通过设置 MESA_GL_VERSION_OVERRIDE 为 2.1 或更大但小于或等于您驱动程序版本的值来覆盖调用 glGetString(GL_VERSION) 时报告的 GL 版本。您可以使用 glxinfo 检查您的驱动程序支持的最高 OpenGL 版本:

glxinfo | grep version

示例输出(查找 "OpenGL version string: x.y"):

server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
Max core profile version: 4.6
Max compat profile version: 4.6
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.2
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.2.6
OpenGL core profile shading language version string: 4.60
OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.2.6
OpenGL shading language version string: 4.60
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 20.2.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
GL_EXT_shader_implicit_conversions, GL_EXT_shader_integer_mix,

使用版本 2.1 或匹配您的图形驱动程序的版本:

$ MESA_GL_VERSION_OVERRIDE=2.1 ./Defold
$ MESA_GL_VERSION_OVERRIDE=4.6 ./Defold

Q: 为什么启动 Defold 时出现 "com.jogamp.opengl.GLException: Graphics configuration failed" 错误?

A: 在某些发行版(例如 Ubuntu 20.04)上,运行 Defold 时新的 Mesa 驱动程序(Iris)存在问题。您可以尝试在运行 Defold 时使用较旧的驱动程序版本:

$ MESA_LOADER_DRIVER_OVERRIDE=i965 ./Defold

Q: 当打开集合或游戏对象时,Defold 编辑器崩溃,崩溃信息提到 libffi.so

A: 您发行版的 libffi 版本与 Defold(版本 6 或 7)所需的版本不匹配。确保 libffi.so.6libffi.so.7 安装在 /usr/lib/x86_64-linux-gnu 下。您可以像这样下载 libffi.so.7

$ wget http://ftp.br.debian.org/debian/pool/main/libf/libffi/libffi7_3.3-6_amd64.deb
$ sudo dpkg -i libffi7_3.3-6_amd64.deb

接下来,在运行 Defold 时,在 LD_PRELOAD 环境变量中指定此版本的路径:

$ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libffi.so.7 ./Defold

Q: 我的 OpenGL 驱动程序已过时。我还能使用 Defold 吗?

A: 是的,如果您启用软件渲染,可能仍然可以使用 Defold。您可以通过将 LIBGL_ALWAYS_SOFTWARE 环境变量设置为 1 来启用软件渲染:

$ LIBGL_ALWAYS_SOFTWARE=1 ./Defold

Q: 为什么我尝试在 Linux 上运行 Defold 游戏时无法启动?

A: 检查编辑器中的控制台输出。如果您收到以下消息:

dmengine: error while loading shared libraries: libopenal.so.1: cannot open shared object file: No such file or directory

那么您需要安装 *libopenal1*。软件包名称在不同发行版之间有所不同,在某些情况下,您可能需要安装 openalopenal-devopenal-devel 软件包。

$ apt-get install libopenal-dev

Q: 为什么顶部菜单在我选择某项之前就关闭了?

A: 这很可能是由使用的窗口管理器(例如 Qtile 或 i3)引起的。这是 JavaFX 中的一个已知问题,可以通过将 GDK_DISPLAY 环境变量设置为 1 来解决:

$ GDK_DISPLAY=1 ./Defold

或者通过修改 Defold/config 文件并在 vmargs 行添加 -Djdk.gtk.version=2

vmargs = -Djdk.gtk.version=2,-Dfile.encoding=UTF-8,...

Q: 为什么当我选择从磁盘打开时无法浏览所有可用的文件位置?

A: 如果您通过 使用 Flatpak 的 Steam 运行 Defold,您需要授予 Steam 访问其他驱动器的权限。您可以使用 Flatseal 或类似工具修改您的 Flatpak 应用程序的权限。

Q: 为什么我无法打开 Web 分析器或任何其他需要浏览器的菜单选项?

A: 这很可能是因为在非 Gnome 系统上没有检测到浏览器,导致对 Desktop.getDesktop().browse(new URI(url)); 的内部调用失败。尝试安装 libgnome

$ apt-get install libgnome