Pacote de Idiomas Não Encontrado no .NET MAUI Android

Curtis Chau
Curtis Chau
Updated: 29 de junho de 2026

Carregar um idioma não-inglês (por exemplo, chinês) em um projeto .NET MAUI Android pode falhar em tempo de execução, mesmo quando os dados treinados estão em Assets/tessdata e são marcados como um AndroidAsset.

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

Criar um projeto MAUI Android no Visual Studio Code ou no CLI pode pular a resolução dos arquivos de dados de idioma que o IronOCR necessita. Os arquivos *.traineddata nunca chegam ao APK, então o mecanismo não pode encontrá-los em tempo de execução.

Solução

1. Build in Visual Studio 2022

Abra e compile o projeto no IDE completo do Visual Studio 2022 (v17.10 ou posterior). O IDE completo inclui as dependências no APK do Android durante a compilação, que os caminhos do CLI e VS Code podem perder.

2. Recolocar a pasta OcrData

Após a compilação, mova a pasta OcrData para fora de bin e para a raiz do projeto, por exemplo, OcrData/chi_sim.traineddata.

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

3. Registrar os dados treinados como ativos do Android

Adicione os arquivos recolocados ao seu .csproj para que sejam enviados com o APK:

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

4. Adicionar uma fonte que suporte seus caracteres

O texto reconhecido ainda precisa de uma fonte que possa renderizá-lo na interface do aplicativo. Solte uma fonte como Noto Sans SC em Resources/Fonts e registre-a em 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();
        }
    }
}

Dicas de Depuração

  • Confirme o pacote NuGet: certifique-se de que IronOcr.Android está instalado e restaurado.
  • Ligue o log para ver os caminhos de busca que o IronOCR usa para arquivos de idioma:
IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.All;
IronSoftware.Logger.LogFilePath = "OcrMaui.log";
Aviso: Uma pasta .tessdata em Assets/pode falhar silenciosamente em compilações CLI ou VS Code, por isso, recolocar os arquivos .traineddata manualmente às vezes é necessário.

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

Leia mais

Pronto para começar?

Nuget Downloads 6,279,416Versão:2026.10recém-lançado