Flutter 桌面应用程序上的 Gdk-CRITICAL 异常,linux
Gdk-CRITICAL exceptions on a Flutter Desktop app, linux
我正尝试在 Linux 上启动我的 Flutter 应用作为桌面应用。
它之前已经有效,但现在我在启动时遇到此错误:
WARNING **: 08:21:24.318: Failed to start Flutter engine: Failed to create EGL surface using configuration (EGL_CONFIG_ID=1 EGL_BUFFER_SIZE=32 EGL_COLOR_BUFFER_TYPE=EGL_RGB_BUFFER EGL_TRANSPARENT_TYPE=EGL_NONE EGL_LEVEL=0 EGL_RED_SIZE=8 EGL_GREEN_SIZE=8 EGL_BLUE_SIZE=8 EGL_ALPHA_SIZE=8 EGL_DEPTH_SIZE=0 EGL_STENCIL_SIZE=0 EGL_SAMPLES=0 EGL_SAMPLE_BUFFERS=0 EGL_NATIVE_VISUAL_ID=0x24 EGL_NATIVE_VISUAL_TYPE=0x4 EGL_NATIVE_RENDERABLE=EGL_TRUE EGL_CONFIG_CAVEAT=EGL_NONE EGL_BIND_TO_TEXTURE_RGB=EGL_TRUE EGL_BIND_TO_TEXTURE_RGBA=EGL_TRUE EGL_RENDERABLE_TYPE=EGL_OPENGL_ES_BIT|EGL_OPENGL_ES2_BIT|EGL_OPENGL_BIT|EGL_OPENGL_ES3_BIT EGL_CONFORMANT=EGL_OPENGL_ES_BIT|EGL_OPENGL_ES2_BIT|EGL_OPENGL_BIT|EGL_OPENGL_ES3_BIT EGL_SURFACE_TYPE=EGL_PBUFFER_BIT|EGL_PIXMAP_BIT|EGL_WINDOW_BIT EGL_MAX_PBUFFER_WIDTH=4096 EGL_MAX_PBUFFER_HEIGHT=4096 EGL_MAX_PBUFFER_PIXELS=0 EGL_MIN_SWAP_INTERVAL=0 EGL_MAX_SWAP_INTERVAL=1000): Success
最重要的是运行最后写的是“成功”。
启动的应用程序如下所示:
我在 cmake
之前遇到了另一个错误,我解决了它但它可能被链接了:我将我的项目目录移动到其他地方并且 cmake
抱怨 CMakeCache.txt
path 之类的东西,不会编译我删除了构建文件夹,它允许我编译,但是我在启动时遇到了这个错误。
我的环境:
我正在开发 Debian 10,
Flutter 1.20.0-3.0.pre.126
,
Dart 2.9.0 (build 2.9.0-20.0.dev 8afe9875a6)
,
cmake version 3.13.4
,
编辑:
我只是 运行 flutter upgrade
,现在我有以下规格:
Flutter 1.20.0-3.0.pre.193
Dart 2.9.0 (build 2.9.0-21.0.dev 06cb010247)
我重新运行 应用程序,但现在我遇到了这些错误:
(digital_accountant:28838): GLib-GObject-WARNING **: 16:43:42.961: invalid cast from 'GdkWaylandScreen' to 'GdkX11Screen'
(digital_accountant:28838): Gdk-CRITICAL **: 16:43:42.961: gdk_visual_get_screen: assertion 'GDK_IS_VISUAL (visual)' failed
(digital_accountant:28838): Gdk-CRITICAL **: 16:43:42.961: gdk_window_new: assertion 'gdk_visual_get_screen (attributes->visual) == screen' failed
(digital_accountant:28838): Gtk-CRITICAL **: 16:43:42.961: gtk_widget_register_window: assertion 'GDK_IS_WINDOW (window)' failed
(digital_accountant:28838): GLib-GObject-CRITICAL **: 16:43:42.961: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
谢谢
停用路地。
在软呢帽上:
$ sudo nano /etc/gdm/custom.conf
取消注释变量:
#WaylandEnable=false
并重新启动 gnome:
sudo systemctl restart gdm
然后更改会话屏幕,“wayland”或“Xorg”。
我正尝试在 Linux 上启动我的 Flutter 应用作为桌面应用。
它之前已经有效,但现在我在启动时遇到此错误:
WARNING **: 08:21:24.318: Failed to start Flutter engine: Failed to create EGL surface using configuration (EGL_CONFIG_ID=1 EGL_BUFFER_SIZE=32 EGL_COLOR_BUFFER_TYPE=EGL_RGB_BUFFER EGL_TRANSPARENT_TYPE=EGL_NONE EGL_LEVEL=0 EGL_RED_SIZE=8 EGL_GREEN_SIZE=8 EGL_BLUE_SIZE=8 EGL_ALPHA_SIZE=8 EGL_DEPTH_SIZE=0 EGL_STENCIL_SIZE=0 EGL_SAMPLES=0 EGL_SAMPLE_BUFFERS=0 EGL_NATIVE_VISUAL_ID=0x24 EGL_NATIVE_VISUAL_TYPE=0x4 EGL_NATIVE_RENDERABLE=EGL_TRUE EGL_CONFIG_CAVEAT=EGL_NONE EGL_BIND_TO_TEXTURE_RGB=EGL_TRUE EGL_BIND_TO_TEXTURE_RGBA=EGL_TRUE EGL_RENDERABLE_TYPE=EGL_OPENGL_ES_BIT|EGL_OPENGL_ES2_BIT|EGL_OPENGL_BIT|EGL_OPENGL_ES3_BIT EGL_CONFORMANT=EGL_OPENGL_ES_BIT|EGL_OPENGL_ES2_BIT|EGL_OPENGL_BIT|EGL_OPENGL_ES3_BIT EGL_SURFACE_TYPE=EGL_PBUFFER_BIT|EGL_PIXMAP_BIT|EGL_WINDOW_BIT EGL_MAX_PBUFFER_WIDTH=4096 EGL_MAX_PBUFFER_HEIGHT=4096 EGL_MAX_PBUFFER_PIXELS=0 EGL_MIN_SWAP_INTERVAL=0 EGL_MAX_SWAP_INTERVAL=1000): Success
最重要的是运行最后写的是“成功”。
启动的应用程序如下所示:
我在 cmake
之前遇到了另一个错误,我解决了它但它可能被链接了:我将我的项目目录移动到其他地方并且 cmake
抱怨 CMakeCache.txt
path 之类的东西,不会编译我删除了构建文件夹,它允许我编译,但是我在启动时遇到了这个错误。
我的环境:
我正在开发 Debian 10,
Flutter 1.20.0-3.0.pre.126
,
Dart 2.9.0 (build 2.9.0-20.0.dev 8afe9875a6)
,
cmake version 3.13.4
,
编辑:
我只是 运行 flutter upgrade
,现在我有以下规格:
Flutter 1.20.0-3.0.pre.193
Dart 2.9.0 (build 2.9.0-21.0.dev 06cb010247)
我重新运行 应用程序,但现在我遇到了这些错误:
(digital_accountant:28838): GLib-GObject-WARNING **: 16:43:42.961: invalid cast from 'GdkWaylandScreen' to 'GdkX11Screen'
(digital_accountant:28838): Gdk-CRITICAL **: 16:43:42.961: gdk_visual_get_screen: assertion 'GDK_IS_VISUAL (visual)' failed
(digital_accountant:28838): Gdk-CRITICAL **: 16:43:42.961: gdk_window_new: assertion 'gdk_visual_get_screen (attributes->visual) == screen' failed
(digital_accountant:28838): Gtk-CRITICAL **: 16:43:42.961: gtk_widget_register_window: assertion 'GDK_IS_WINDOW (window)' failed
(digital_accountant:28838): GLib-GObject-CRITICAL **: 16:43:42.961: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
谢谢
停用路地。
在软呢帽上:
$ sudo nano /etc/gdm/custom.conf
取消注释变量:
#WaylandEnable=false
并重新启动 gnome:
sudo systemctl restart gdm
然后更改会话屏幕,“wayland”或“Xorg”。