Como Corrigir o Warning XA0141 no .NET MAUI (SQLite com Page Size 16 KB no Android 15 e 16)
"Você tem notado o aviso XA0141 nos seus logs de build do .NET MAUI? O Android 15 e 16 estão migrando para tamanhos de página de 16 KB, o que faz com que bibliotecas SQLite mais antigas falhem em hardwares novos. Neste guia, explico exatamente por que isso está acontecendo e apresento uma solução passo a passo para mudar para o bundle_e_sqlite3 e preparar sua aplicação para o futuro."
Como Corrigir o Warning XA0141 no .NET MAUI (SQLite com Page Size 16 KB no Android 15 e 16)
Se você está desenvolvendo um aplicativo .NET MAUI para versões modernas do Android, provavelmente já se deparou com o seguinte aviso durante o build:
warning XA0141: Android 16 will require 16 KB page sizes, shared library 'libe_sqlite3.so' does not have a 16 KB page size.
🛑 Danger
Esse warning não deve ser ignorado. Ele indica um problema real de compatibilidade futura com o Android 15 e Android 16, relacionado à biblioteca nativa do SQLite utilizada pela sua aplicação.
Neste artigo, você vai entender por que esse erro acontece, quais apps serão afetados e como corrigir definitivamente o XA0141 no .NET MAUI, garantindo compatibilidade com dispositivos modernos como o Pixel 9.
📌 O Que é o Warning XA0141?
O aviso XA0141 informa que a biblioteca nativa libe_sqlite3.so foi compilada usando page size de 4 KB, enquanto o Android está migrando para 16 KB page size como padrão.
A partir do Android 15 (e obrigatório no Android 16):
- Bibliotecas nativas precisam suportar alinhamento de memória de 16 KB
- Bibliotecas antigas com 4 KB podem falhar ao carregar
- O app pode crashar na inicialização
🛑 A Causa do Problema: SQLitePCLRaw.bundle_green
Durante muitos anos, a recomendação padrão para projetos Xamarin e .NET MAUI foi utilizar:
SQLitePCLRaw.bundle_green
O problema é que:
- Esse bundle utiliza uma versão do SQLite compilada com 4 KB
- Em dispositivos com 16 KB page size, o Android não consegue carregar a DLL nativa
- O resultado é crash silencioso ou falha ao iniciar o app
✅ A Solução Oficial: SQLitePCLRaw.bundle_e_sqlite3
A comunidade e os mantenedores do ecossistema sqlite-net-pcl confirmaram que a solução correta é migrar para:
SQLitePCLRaw.bundle_e_sqlite3(versão 2.1.10 ou superior)
Essa versão já inclui:
libe_sqlite3.socompilada com 16 KB page size- Compatibilidade total com Android 15 e 16
- Eliminação completa do warning XA0141
🧹 Passo 1: Remover Dependências Incompatíveis
Abra o seu .csproj e remova qualquer referência aos pacotes abaixo:
Esses pacotes são os responsáveis pelo SQLite incompatível.
📦 Passo 2: Instalar o SQLite Compatível com 16 KB
Adicione os pacotes corretos via CLI:
dotnet add package sqlite-net-pcl --version 1.9.172
dotnet add package SQLitePCLRaw.bundle_e_sqlite3 --version 2.1.10
Ou atualize manualmente o .csproj:
<ItemGroup> <PackageReference Include="sqlite-net-pcl" Version="1.9.172" /> <PackageReference Include="SQLitePCLRaw.bundle_e_sqlite3" Version="2.1.10" /> </ItemGroup>
🚀 Passo 3: Inicializar o SQLite no MauiProgram.cs
Depois de trocar o bundle, é fundamental inicializar corretamente o SQLite para garantir que a biblioteca correta seja carregada.
public static MauiApp CreateMauiApp() { var builder = MauiApp.CreateBuilder(); // Configurações padrão do app // Inicializa o SQLite com a biblioteca correta (16 KB) SQLitePCL.Batteries_V2.Init(); return builder.Build(); }
🔍 Como Verificar se o Problema Foi Resolvido
Após aplicar as mudanças:
- Execute Clean e Rebuild
- Verifique se o warning XA0141 desapareceu
- Teste o app em:
- Emulador Android 15 com 16 KB page size
- Dispositivos como Pixel 9
Se tudo estiver correto, o app iniciará normalmente e o SQLite funcionará sem falhas.
🏁 Conclusão
A migração para SQLitePCLRaw.bundle_e_sqlite3 não é opcional — ela é obrigatória para garantir que seu aplicativo .NET MAUI continue funcionando corretamente no Android 16 e versões futuras.
Resolver o warning XA0141 agora evita crashes, reprovação na Play Store e problemas difíceis de diagnosticar no futuro.
Se você usa SQLite no .NET MAUI, faça essa atualização o quanto antes.
🚀 App seguro hoje. Compatível amanhã.
