dotnet 解決 UNO 在 OpenKylin 麒麟系統執行找不到預設字型啟動失敗

lindexi發表於2024-06-26

本文記錄 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 麒麟系統執行找不到預設字型啟動失敗

本文以上程式碼放在githubgitee 歡迎訪問

可以透過如下方式獲取本文的原始碼,先建立一個空資料夾,接著使用命令列 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 資料夾

相關文章