Skip to content

XA0141 Warning: libe_sqlcipher.so 16KB page size issue #632

Description

@dictav

Hello,

I am experiencing a recurrence of the XA0141 warning regarding 16KB page size for libe_sqlcipher.so when building my .NET MAUI application for Android. This warning persists even after upgrading SQLitePCLRaw packages. While a similar issue was previously discussed and closed in #603 concerning libe_sqlite3mc.so, this new warning specifically targets libe_sqlcipher.so.


Problem Description & Exact Warning

When building my MAUI project for net9.0-android, I receive the following warnings:

$ dotnet build -f net9.0-android
Maui9Test net9.0-android succeeded with 2 warning(s) (XX.Xs) → bin/Debug/net9.0-android/Maui9Test.dll
/usr/local/share/dotnet/packs/Microsoft.Android.Sdk.Darwin/35.0.78/tools/Xamarin.Android.Common.targets(2207,2): warning XA0141: Android 16 will require 16 KB page sizes, shared library 'libe_sqlcipher.so' does not have a 16 KB page size. Please inform the authors of the NuGet package 'SQLitePCLRaw.lib.e_sqlcipher' version '2.1.11' which contains 'runtimes/linux-arm664/native/libe_sqlcipher.so'. See [https://developer.android.com/guide/practices/page-sizes](https://developer.android.com/guide/practices/page-sizes) for more details.
/usr/local/share/dotnet/packs/Microsoft.Android.Sdk.Darwin/35.0.78/tools/Xamarin.Android.Common.targets(2207,2): warning XA0141: Android 16 will require 16 KB page sizes, shared library 'libe_sqlcipher.so' does not have a 16 KB page size. Please inform the authors of the NuGet package 'SQLitePCLRaw.lib.e_sqlcipher' version '2.1.11' which contains 'runtimes/linux-x64/native/libe_sqlcipher.so'. See [https://developer.android.com/guide/practices/page-sizes](https://developer.android.com/guide/practices/page-sizes) for more details.

The warning indicates that libe_sqlcipher.so included in SQLitePCLRaw.lib.e_sqlcipher v2.1.11 does not meet the 16KB page size requirement for Android 15 (API Level 35) and later. This is unexpected, as the release notes for SQLitePCLRaw v2.1.10 mention "Update Android builds to add support for 16kb page size".


My Setup & Configuration

What version of SQLitePCLRaw are you using?
I am using SQLitePCLRaw.lib.e_sqlcipher version 2.1.11.

If you are using one of the SQLitePCLRaw bundle packages, which one?
I have explicitly referenced the following in my .csproj to try and ensure the latest versions are picked up:

  • <PackageReference Include="SQLitePCLRaw.lib_e_sqlite3" Version="2.1.11" />

What platform are you running on? What operating system? Which version? What CPU?

  • Operating System: macOS
  • OS Version: 15.5
  • OS Platform: Darwin
  • CPU: arm64

What target framework are you building for?
What is the exact error message you are seeing when the problem happens?
I am building for net9.0-android on .NET 9 using the command line.

$ dotnet build -f net9.0-android
  Maui9Test net9.0-android succeeded with 2 warning(s) (37.1s) → bin/Debug/net9.0-android/Maui9Test.dll
    /usr/local/share/dotnet/packs/Microsoft.Android.Sdk.Darwin/35.0.78/tools/Xamarin.Android.Common.targets(2207,2): warning XA0141: Android 16 will require 16 KB page sizes, shared library 'libe_sqlcipher.so' does not have a 16 KB page size. Please inform the authors of the NuGet package 'SQLitePCLRaw.lib.e_sqlcipher' version '2.1.11' which contains 'runtimes/linux-arm64/native/libe_sqlcipher.so'. See https://developer.android.com/guide/practices/page-sizes for more details.
    /usr/local/share/dotnet/packs/Microsoft.Android.Sdk.Darwin/35.0.78/tools/Xamarin.Android.Common.targets(2207,2): warning XA0141: Android 16 will require 16 KB page sizes, shared library 'libe_sqlcipher.so' does not have a 16 KB page size. Please inform the authors of the NuGet package 'SQLitePCLRaw.lib.e_sqlcipher' version '2.1.11' which contains 'runtimes/linux-x64/native/libe_sqlcipher.so'. See https://developer.android.com/guide/practices/page-sizes for more details.

Is this problem something that just started happening? For example, were things working well for you and then you updated something and then the problem showed up? What changed?
This specific warning for libe_sqlcipher.so started appearing after updating to .NET 9.

How can we reproduce the problem you are seeing? Your issue will get attention much faster if you attach a minimal reproduction sample project.
A minimal reproduction project could be created with a new MAUI app targeting net9.0-android and adding the SQLitePCLRaw.bundle_sqlcipher packages. Building this project should then show the warning.


Environment Information (dotnet --info)

Click to expand
.NET SDK:
 Version:           9.0.301
 Commit:            a596cd22e2
 Workload version:  9.0.300-manifests.a5af3c0a
 MSBuild version:   17.14.5+edd3bbf37

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  15.5
 OS Platform: Darwin
 RID:         osx-arm64
 Base Path:   /usr/local/share/dotnet/sdk/9.0.301/

.NET workloads installed:
 [maui-ios]
   Installation Source: SDK 9.0.300
   Manifest Version:    9.0.51/9.0.100
   Manifest Path:       /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.maui/9.0.51/WorkloadManifest.json
   Install Type:        FileBased

 [maui-android]
   Installation Source: SDK 9.0.300
   Manifest Version:    9.0.51/9.0.100
   Manifest Path:       /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.maui/9.0.51/WorkloadManifest.json
   Install Type:        FileBased

 [maui]
   Installation Source: SDK 9.0.300
   Manifest Version:    9.0.51/9.0.100
   Manifest Path:       /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.maui/9.0.51/WorkloadManifest.json
   Install Type:        FileBased

Configured to use loose manifests when installing new manifests.

Host:
  Version:      9.0.6
  Architecture: arm64
  Commit:       3875b54e7b

.NET SDKs installed:
  9.0.301 [/usr/local/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 9.0.6 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 9.0.6 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  Not set

global.json file:
  Not found

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download

Could you please investigate why libe_sqlcipher.so is still triggering the XA0141 warning in v2.1.11, despite the 16KB page size support update in v2.1.10? Thank you for your assistance.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions