Pack linguistique non trouvé sur .NET MAUI Android

Curtis Chau
Curtis Chau
Updated: 29 juin 2026

Le chargement d'une langue non anglaise (par exemple le chinois) dans un projet .NET MAUI Android peut échouer à l'exécution, même lorsque les données d'entraînement se trouvent dans Assets/tessdata et sont marquées comme AndroidAsset.

System.IO.FileNotFoundException: Language Pack Not Found: chi_sim.traineddata
Text

Construire un projet MAUI Android à partir de Visual Studio Code ou du CLI peut éviter de résoudre les fichiers de données linguistiques dont IronOCR a besoin. Les fichiers *.traineddata n'arrivent jamais dans l'APK, donc le moteur ne peut pas les trouver à l'exécution.

Solution

1. Compilez dans Visual Studio 2022

Ouvrez et construisez le projet dans l'IDE complet Visual Studio 2022 (v17.10 ou plus). L'IDE complet inclut les dépendances dans l'APK Android lors de la construction, ce que les chemins CLI et VS Code peuvent omettre.

2. Déplacez le dossier OcrData

Après la construction, déplacez le dossier OcrData hors de bin et dans la racine du projet, par exemple OcrData/chi_sim.traineddata.

ProjectRoot/
├── OcrData/
│   └── chi_sim.traineddata
├── Resources/
│   └── Fonts/
│       └── NotoSansSC-Regular.ttf
├── MyMauiApp.csproj
Text

3. Enregistrez les données d'entraînement en tant que ressources Android

Ajoutez les fichiers déplacés à votre .csproj afin qu'ils soient inclus dans l'APK :

<ItemGroup>
  <AndroidAsset Include="OcrData\chi_sim.traineddata" />
  <AndroidAsset Include="ocrData\chi_tra.traineddata" />
</ItemGroup>
XML

4. Ajoutez une police qui prend en charge vos caractères

Le texte reconnu a toujours besoin d'une police qui peut le rendre dans l'UI de l'application. Déposez une police comme Noto Sans SC dans Resources/Fonts et enregistrez-la dans MauiProgram.cs :

using Microsoft.Extensions.Logging;
namespace MauiApp2
{
    public static class MauiProgram
    {
        public static MauiApp CreateMauiApp()
        {
            var builder = MauiApp.CreateBuilder();
            builder
                .UseMauiApp<App>()
                .ConfigureFonts(fonts =>
                {
                    fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
                    fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
                });
#if DEBUG
            builder.Logging.AddDebug();
#endif
            return builder.Build();
        }
    }
}

Conseils de débogage

  • Confirmez le package NuGet : assurez-vous que IronOcr.Android est installé et restauré.
  • Activez la journalisation pour voir les chemins de recherche qu'utilise IronOCR pour les fichiers de langue :
IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.All;
IronSoftware.Logger.LogFilePath = "OcrMaui.log";
Avertissement: Un dossier .tessdata sous Assets/peut échouer silencieusement sur les builds CLI ou VS Code, c'est pourquoi il est parfois nécessaire de déplacer manuellement les fichiers .traineddata.

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.

Lire la suite

Prêt à commencer?

Nuget Downloads 6,357,159Version :2026.11vient de sortir