微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Linux 上的 Xamarin GTK:“DllNotFoundException:libglib-2.0-0.dll”

如何解决Linux 上的 Xamarin GTK:“DllNotFoundException:libglib-2.0-0.dll”

我正在尝试在全新安装的 Ubuntu 20.04.2 上运行 Xamarin 测试应用程序

在 Windows 10 机器上,我正在克隆这个 repo:

https://github.com/jsuarezruiz/xamarin-forms-gtk-movies-sample

在Visual Studio 2019中编译,在android和windows GTK上完美运行

然后我将 bin/Debug 文件夹的内容复制到我的 Linux 机器上并尝试使用单声道运行它,它抛出一个异常:

Unhandled Exception:
System.DllNotFoundException: libglib-2.0-0.dll assembly:<unkNown assembly> type:<unkNown type> member:(null)
  at (wrapper managed-to-native) GLib.Marshaller.g_utf16_to_utf8(char*,intptr,intptr&)
  at GLib.Marshaller.StringToPtrGStrdup (System.String str) [0x00034] in <d973ca9f8b494b789fba7fe0ad040b14>:0 
  at GLib.Global.set_ProgramName (System.String value) [0x00001] in <d973ca9f8b494b789fba7fe0ad040b14>:0 
  at Gtk.Application.SetPrgname () [0x0000d] in <35293b6aa2744433b0e2f41f34e699d5>:0 
  at Gtk.Application.Init () [0x00001] in <35293b6aa2744433b0e2f41f34e699d5>:0 
  at Movies.GTK.Program.Main (System.String[] args) [0x00043] in <87211febe55c459f869a2b0842e037c3>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.DllNotFoundException: libglib-2.0-0.dll assembly:<unkNown assembly> type:<unkNown type> member:(null)
  at (wrapper managed-to-native) GLib.Marshaller.g_utf16_to_utf8(char*,intptr&)
  at GLib.Marshaller.StringToPtrGStrdup (System.String str) [0x00034] in <d973ca9f8b494b789fba7fe0ad040b14>:0 
  at GLib.Global.set_ProgramName (System.String value) [0x00001] in <d973ca9f8b494b789fba7fe0ad040b14>:0 
  at Gtk.Application.SetPrgname () [0x0000d] in <35293b6aa2744433b0e2f41f34e699d5>:0 
  at Gtk.Application.Init () [0x00001] in <35293b6aa2744433b0e2f41f34e699d5>:0 
  at Movies.GTK.Program.Main (System.String[] args) [0x00043] in <87211febe55c459f869a2b0842e037c3>:0 

显然缺少“libglib-2.0-0.dll”,我不确定如何在 Linux 上安装它以及 mono 在何处搜索它。 到目前为止,我尝试安装 mono-devel、mono-complete、gtk-sharp2、libglib2.0-dev

解决方法

在搜索 mono 日志后,我注意到它正在尝试访问特定于 Windows 的 dll,因此我尝试在这些库上将库引用参数“Copy Local”设置为 false:

  • 攻击力敏锐
  • gdk-sharp
  • 林地锋利
  • 口齿伶俐
  • gtk-dotnet
  • gtk-sharp
  • 锐利

它适用于 ubuntu 18.04.3 LTS

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。