【问题标题】:Gdk-CRITICAL exceptions on a Flutter Desktop app, linuxFlutter 桌面应用程序 linux 上的 Gdk-CRITICAL 异常
【发布时间】:2020-10-29 18:06:21
【问题描述】:

我正在尝试在 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 路径或其他东西,并且不会编译我删除了 build 文件夹,它允许我编译,但随后在启动时出现此错误。

我的环境: 我正在开发 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

谢谢

【问题讨论】:

    标签: flutter cmake egl flutter-desktop


    【解决方案1】:

    禁用到 Wayland。

    在 Fedora 上:

    $ sudo nano /etc/gdm/custom.conf 
    

    取消注释变量:

    #WaylandEnable=false
    

    然后重启 gnome:

    sudo systemctl restart gdm
    

    然后更改会话屏幕,“wayland”或“Xorg”。

    【讨论】:

    • 成功了,谢谢!除了我编辑的文件是/etc/gdm3/daemon.conf。 gnome 重新启动后,我必须登录我的会话,并且我有一个黑屏。我硬重启了我的电脑,现在它可以正常工作了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2020-12-05
    • 2020-10-25
    • 1970-01-01
    • 2018-06-17
    • 2022-10-09
    • 2012-08-20
    • 1970-01-01
    • 2022-10-19
    相关资源
    最近更新 更多