本文記錄 UNO 應用在 OpenKylin 麒麟系統執行找不到預設字型啟動失敗的解決方法
本文方法適用於 5.2.161 版本的 UNO 應用,更高版本我沒有經過充分測試
在 OpenKylin 系統啟動 Avalonia 應用失敗,在 FontDetailsCache 的 GetFontInternal 方法裡面丟擲空異常
核心原因是 UNO 嘗試尋找預設的字型,然而找不到
解決方法是手動設定預設字型,編輯 App.xaml.cs
加上如下程式碼
public App()
{
this.InitializeComponent();
#if HAS_UNO
// Fix run fail in Kylin system.
// https://github.com/unoplatform/uno/issues/17287
FeatureConfiguration.Font.DefaultTextFontFamily = "Noto Sans CJK SC";
#endif
}
此問題已經報告給 UNO 官方,請看 : https://github.com/unoplatform/uno/issues/17287
相關部落格: dotnet 解決 Avalonia 在 OpenKylin 麒麟系統執行找不到預設字型啟動失敗
本文以上程式碼放在github 和 gitee 歡迎訪問
可以透過如下方式獲取本文的原始碼,先建立一個空資料夾,接著使用命令列 cd 命令進入此空資料夾,在命令列裡面輸入以下程式碼,即可獲取到本文的程式碼
git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin bf72c0981965bb4aed7f082ef81eed2e4b6d6913
以上使用的是 gitee 的源,如果 gitee 不能訪問,請替換為 github 的源。請在命令列繼續輸入以下程式碼
git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
git pull origin bf72c0981965bb4aed7f082ef81eed2e4b6d6913
獲取程式碼之後,進入 UnoDemo/DalekairwiJebonacaki 資料夾