Avalonia项目在OpenKylin运行踩坑
Avalonia项目在OpenKylin运行踩坑
本篇博客记录OpenKylin开源操作系统中运行Avalonia项目遇到的各种问题,会一直更新,最新的内容请点击文末的链接跳转到我的博客原文地址查看。
1.Default font family name can’t be null or empty
报错内容:
报错分析:
根据报错信息,应用程序在使用 Avalonia UI 框架时遇到了问题。报错信息表明默认字体系列名称为空或为空字符串。
可以通过以下命令查看系统已安装的字体列表:
重点issue
这是一个很久的问题,参考这个issue
https://github.com/AvaloniaUI/Avalonia/issues/4427
尝试第一个解决方案(0.10版本及以前有效)
网上的解决方案,针对0.10版本及以前有效 解决方案一
由于 11.0.0 更改了 Avalonia.Skia.GlyphTypefaceImpl 的访问级别,从公共访问级别更改为内部访问级别,因此上述实现 Avalonia.Platform.IFontManagerImpl 的示例代码现在均不可用。
V11版本解决方案
1.修改环境变量 export US.UTF-8
https://github.com/AvaloniaUI/Avalonia/issues/12140
将环境变量设置 export US.UTF-8

1.打开终端。
2.运行以下命令来查看当前的 LANG
环境变量的值:
3.如果当前的 LANG
值不是 en_US.UTF-8
,就需要设置它为 en_US.UTF-8
。可以使用以下命令来设置:
4.使用 echo
命令验证环境变量是否已更改:
5.如果您希望永久设置 LANG
变量,可以将上述命令添加到您的 shell 配置文件中(如 ~/.bashrc
、~/.bash_profile
等),这样每次启动终端时都会自动设置。
代码中修改掉linux不支持的字体
将字体修改后
linux中没有宋体,会自动选择后面的国标黑体
成果展示

2.Cannot access a disposed context instance
报错记录
原因
在 Linux 环境下发生此错误可能是因为 Linux 环境的异步处理方式与 Windows 环境有所不同。

解决方案
去掉using
然后,在其他需要使用 ChatDbcontext
的地方,使用 VMLocator.ChatDbcontext
来获取上下文实例。确保不要在其他地方使用 using
语句或调用上下文实例的 Dispose
方法。
3.openkylin会自动切换到平板模式
而且切换不回来,程序点不了

解决方案
可以通过桌面侧边栏进行PC/平板模式切换,唤出侧边栏的方法有:
点击任务栏上的侧边栏图标;
快捷键 super + A;----super对应Windows键
通过触摸手势,在屏幕右边缘向左短滑。
阅读如遇样式问题,请前往个人博客浏览: https://www.raokun.top
拥抱ChatGPT:https://ai.terramours.site
开源项目地址:https://github.com/raokun/TerraMours.Chat.Ava