Flutter application and clang error compilation

Hello everyone! I am developing a flutter application for desktop and I need to publish it on Snap Store, but recently I faced with a problem.

There is a pubspec file with next dependencies: window_manager and tray_manager.

When I run flutter build linux --release --verbose it’s always fail. Experimentally I determined that compiling crashes on the tray_manager dependency, but without one all is fine.

Error message like this:

error message
[ +490 ms] [2/5] Building CXX object CMakeFiles/super_cool_app.dir/flutter/generated_plugin_registrant.cc.o
[  +43 ms] [3/5] Building CXX object CMakeFiles/super_cool_app.dir/my_application.cc.o
[ +147 ms] [4/5] Linking CXX executable intermediates_do_not_run/super_cool_app
[        ] FAILED: intermediates_do_not_run/super_cool_app 
[   +8 ms] : && /snap/flutter/current/usr/bin/clang++  -O3 -DNDEBUG  -B/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9 -B/snap/flutter/current/usr/lib/x86_64-linux-gnu
-B/snap/flutter/current/lib/x86_64-linux-gnu -B/snap/flutter/current/usr/lib/ -L/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9 -L/snap/flutter/current/usr/lib/x86_64-linux-gnu
-L/snap/flutter/current/lib/x86_64-linux-gnu -L/snap/flutter/current/usr/lib/ -lblkid -lgcrypt -llzma -llz4 -lgpg-error -luuid -lpthread -ldl -lepoxy
-B/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9 -B/snap/flutter/current/usr/lib/x86_64-linux-gnu -B/snap/flutter/current/lib/x86_64-linux-gnu -B/snap/flutter/current/usr/lib/
-L/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9 -L/snap/flutter/current/usr/lib/x86_64-linux-gnu -L/snap/flutter/current/lib/x86_64-linux-gnu -L/snap/flutter/current/usr/lib/ -lblkid
-lgcrypt -llzma -llz4 -lgpg-error -luuid -lpthread -ldl -lepoxy CMakeFiles/super_cool_app.dir/main.cc.o CMakeFiles/super_cool_app.dir/my_application.cc.o
CMakeFiles/super_cool_app.dir/flutter/generated_plugin_registrant.cc.o  -o intermediates_do_not_run/super_cool_app
-Wl,-rpath,/home/roman/Others/super-cool-app/build/linux/x64/release/plugins/screen_retriever:/home/roman/Others/super-cool-app/build/linux/x64/release/plugins/tray_manager:/home/roman/Othe
rs/super-cool-app/build/linux/x64/release/plugins/window_manager:/home/roman/Others/super-cool-app/linux/flutter/ephemeral:  plugins/screen_retriever/libscreen_retriever_plugin.so
plugins/tray_manager/libtray_manager_plugin.so  plugins/window_manager/libwindow_manager_plugin.so  /home/roman/Others/super-cool-app/linux/flutter/ephemeral/libflutter_linux_gtk.so
/snap/flutter/current/usr/lib/x86_64-linux-gnu/libblkid.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/liblzma.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgtk-3.so
/snap/flutter/current/usr/lib/x86_64-linux-gnu/libgdk-3.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so
/snap/flutter/current/usr/lib/x86_64-linux-gnu/libpango-1.0.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libharfbuzz.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libatk-1.0.so
/snap/flutter/current/usr/lib/x86_64-linux-gnu/libcairo-gobject.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libcairo.so
/snap/flutter/current/usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgio-2.0.so
/snap/flutter/current/usr/lib/x86_64-linux-gnu/libgobject-2.0.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libglib-2.0.so && :
[   +3 ms] /snap/flutter/current/usr/bin/ld: /lib/x86_64-linux-gnu/libayatana-ido3-0.4.so.0: undefined reference to `g_time_zone_new_identifier'
[   +1 ms] clang: error: linker command failed with exit code 1 (use -v to see invocation)
[   +2 ms] ninja: build stopped: subcommand failed.
[  +20 ms] Building Linux application... (completed in 2,481ms)
[        ] "flutter linux" took 2,970ms.
[   +7 ms] Build process failed

After that I found the same issue on Snapcraft repository, but this issue still not resolved.

When I manually install Flutter, there are no compilation errors, but in that case, the Flutter snapcraft plugin becomes meaningless (and changes the snapcraft.yaml file), as similar build issues can occur with absolutely any library. Sometimes I am must use certain libraries for my application, and such errors are very frustrating

I would like to know why it happens and how to avoid it in the future?