AvaloniaUI/Avalonia · critical · InvalidOperationException

Unknown error: AvaloniaView initialization has failed.

Error message

Unknown error: AvaloniaView initialization has failed.

What it means

AvaloniaMainActivity.InitializeAvaloniaView builds _view only when Application is IAndroidApplication with a non-null Lifetime. If that condition is false (Application is null, or is not IAndroidApplication, or Lifetime is null), _view stays null and the method throws. It is a catch-all for 'view init did not happen'.

Source

Thrown at src/Android/Avalonia.Android/AvaloniaMainActivity.cs:23

using Avalonia.Platform;

namespace Avalonia.Android;

public class AvaloniaMainActivity : AvaloniaActivity
{
    private protected override void InitializeAvaloniaView(object? initialContent)
    {
        if (Application is IAndroidApplication application && application.Lifetime is { } lifetime)
        {
            initialContent ??= lifetime.MainViewFactory?.Invoke();

            _view = new AvaloniaView(this);

            Content = initialContent;
        }

        if (_view is null)
            throw new InvalidOperationException("Unknown error: AvaloniaView initialization has failed.");
    }

    protected override void OnResume()
    {
        base.OnResume();

        if (Avalonia.Application.Current?.TryGetFeature<IActivatableLifetime>()
            is AndroidActivatableLifetime activatableLifetime)
        {
            activatableLifetime.CurrentMainActivity = this;
        }
    }

    protected override void OnDestroy()
    {
        base.OnDestroy();

        if (Avalonia.Application.Current?.TryGetFeature<IActivatableLifetime>()

View on GitHub (pinned to 11c5427268)

Solutions

  1. Make your Avalonia App class implement IAndroidApplication (return an IAndroidApplicationLifetime from OnFrameworkInitializationCompleted).
  2. Ensure AppBuilder.UseAndroid() and SetupWithoutStarting()/Start() ran so Application.Current and its Lifetime are set.
  3. If Application.Current is null, fix the earlier AppBuilder error (related to error 34).
  4. Confirm application.Lifetime is the Android lifetime before InitializeAvaloniaView runs.

Example fix

// before
if (Application is IAndroidApplication application && application.Lifetime is { } lifetime)
{
    initialContent ??= lifetime.MainViewFactory?.Invoke();
    _view = new AvaloniaView(this);
    Content = initialContent;
}
if (_view is null)
    throw new InvalidOperationException("Unknown error: AvaloniaView initialization has failed.");

// after (fail with the real reason)
if (Application is null)
    throw new InvalidOperationException("Avalonia Application was not initialized.");
if (Application is not IAndroidApplication androidApp)
    throw new InvalidOperationException($"App '{Application.GetType().FullName}' must implement IAndroidApplication.");
if (androidApp.Lifetime is null)
    throw new InvalidOperationException("Android application lifetime was not created.");
Defensive patterns

Strategy: validation

Validate before calling

// make App implement the Android contract
// public partial class App : Application, IAndroidApplication { ... }

Type guard

static bool IsAndroidApp(Avalonia.Application a) => a is IAndroidApplication ia && ia.Lifetime is not null;

Try / catch

// initialization contract error — fix App/lifetime wiring; surface the specific reason.

Prevention

When it happens

Trigger: Application is null (no Avalonia app), Application does not implement IAndroidApplication (custom App type missing the marker), or application.Lifetime is null (app not started as an Android lifetime). Any of these skip the `_view = new AvaloniaView(this)` assignment.

Common situations: Forgetting to make the App class implement IAndroidApplication; not calling the Android lifetime setup; AppBuilder.Build() failing earlier leaving Application.Current null; custom AppLifetime not registered.

Related errors


AI-assisted analysis of AvaloniaUI/Avalonia@11c5427268 (2026-08-13). Data as JSON: /api/errors/04ac1af13a4c1891. Report an issue: GitHub.