Skip to content

Android crash on splash after Clear Storage – Fast Deployment ghost mode (.NET MAUI 10) #10708

@mugogi

Description

@mugogi

Description

Summary MAUI .NET 10 Android apps crash immediately on splash screen after “Clear Storage” or reinstall. The crash occurs before any managed code executes. This is caused by Visual Studio incorrectly packaging native libraries and leaving Fast Deployment artifacts active in Release builds.
Environment
• .NET MAUI 10
• Microsoft.Maui.Controls" Version="10.0.30"
• Visual Studio 2026 Insiders [11415.281]
• Android 14 (API 34)
• Physical device or emulator
• Release build
• Fast Deployment previously used in Debug mode
Reproduction Steps

  1. Build and deploy a MAUI .NET 10 Android app in Debug mode (Fast Deployment ON by default).
  2. Switch to Release mode.
  3. Deploy the app.
  4. On the device: Clear Storage or uninstall/reinstall the app.
  5. Launch the app.
    Actual Behavior
    App crashes instantly on splash screen. No managed exception is thrown. Debugger does not catch the crash. App never reaches MauiProgram.CreateMauiApp() or App() constructor.
    Logcat Output
    Koda
    No assemblies found in '/data/user/0//files/.override/x86_64'
    Assuming this is part of Fast Deployment. Exiting...
    ALL entries in APK named lib/x86_64/ MUST be STORED. Gradle's minification may COMPRESS such entries.
    Fatal signal 6 (SIGABRT)
    Root Cause
    Visual Studio incorrectly:
  6. Leaves Fast Deployment override logic active in Release builds.
  7. Packages native libraries under lib/x86_64/ as compressed, not stored.
  8. Causes MAUI runtime to search for .override assemblies that do not exist.
  9. Triggers a native SIGABRT before managed code starts.
    This is a tooling bug, not an application bug.
    Expected Behavior
    • Release builds should never reference Fast Deployment override paths.
    • Native libraries must always be packaged as “stored”, not “compressed”.
    • App should start normally after Clear Storage or reinstall.
    Workaround (Confirmed Fix)
    Add the following to .csproj:
    <AndroidUseFastDeployment>false</AndroidUseFastDeployment>
    <EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
    <AndroidPackageFormat>aab</AndroidPackageFormat>

AndroidUseFastDeployment = false
EmbedAssembliesIntoApk = true
AndroidPackageFormat = aab

Then:

  1. Delete bin/ and obj/
  2. Uninstall the app from the device
  3. Rebuild and redeploy
    After this, the crash disappears.
    Why This Needs Fixing
    • Every MAUI .NET 10 Android developer will hit this issue.
    • The crash is silent, native, and extremely difficult to diagnose.
    • It happens on a clean install or Clear Storage — a critical scenario for end users.
    • Developers will incorrectly assume their code is broken.
    Request
    Please fix the packaging pipeline so that:
    • Fast Deployment artifacts are never included in Release builds
    • Native libraries are always stored, not compressed
    • MAUI runtime does not attempt to load .override assemblies in Release mode

Steps to Reproduce

Reproduction Steps (copy/paste)
Build and deploy a .NET MAUI 10 Android app in Debug mode (Fast Deployment ON by default).

Switch to Release mode.

Deploy the app to an Android 14 (API 34) device or emulator.

On the device, open App info → Storage → Clear Storage
(or uninstall the app and reinstall it)

Launch the app.

Observed Behavior
The app crashes immediately on the splash screen.

No managed code executes (does not reach MauiProgram.CreateMauiApp).

Logcat shows MAUI runtime searching for .override Fast Deployment directories in Release mode.

Native SIGABRT is thrown.

Link to public reproduction project repository

No response

Version with bug

10.0.30

Is this a regression from previous behavior?

Yes, this used to work in .NET MAUI

Last version that worked well

10.0.0

Affected platforms

Android

Affected platform versions

Android 14 (API 34) – crash occurs consistently Device/emulator: any (tested on multiple), NET 10

Did you find any workaround?

Yes. A full workaround exists and completely prevents the crash.

To avoid the native SIGABRT on splash, add the following settings to your .csproj:
false true apk
Then perform a clean rebuild:

Delete bin/ and obj/

Uninstall the app from the device

Rebuild and redeploy

This forces MAUI to:

stop referencing the .override Fast Deployment directory

embed all assemblies directly into the APK

package native libraries as stored, not compressed

After applying this workaround, the crash disappears completely.

Relevant log output

01-21 15:36:27.568 W/oft.mobilevault(14535): Attempt to remove non-JNI local reference
01-21 15:36:27.568 W/monodroid-debug(14535): Trying to initialize the debugger with options: --debugger-agent=transport=dt_socket,loglevel=0,address=10.0.2.2:64562,embedding=1,timeout=30000
01-21 15:36:27.568 F/monodroid(14535): No assemblies found in '/data/user/0/com.mugogisoft.mobilevault/files/.__override__/x86_64' or '<unavailable>'. Assuming this is part of Fast Deployment. Exiting...
01-21 15:36:27.568 F/monodroid(14535): ALL entries in APK named `lib/x86_64/` MUST be STORED. Gradle's minification may COMPRESS such entries.
01-21 15:36:27.568 F/monodroid(14535): Abort at monodroid-glue.cc:757:3 ('static MonoDomain *xamarin::android::internal::MonodroidRuntime::create_domain(JNIEnv *, jstring_array_wrapper &, bool, bool)')
01-21 15:36:27.568 F/libc    (14535): Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 14535 (oft.mobilevault), pid 14535 (oft.mobilevault)

Metadata

Metadata

Assignees

No one assigned

    Labels

    need-infoIssues that need more information from the author.t/bug

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions