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
- Make your Avalonia App class implement IAndroidApplication (return an IAndroidApplicationLifetime from OnFrameworkInitializationCompleted).
- Ensure AppBuilder.UseAndroid() and SetupWithoutStarting()/Start() ran so Application.Current and its Lifetime are set.
- If Application.Current is null, fix the earlier AppBuilder error (related to error 34).
- 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
- Implement IAndroidApplication on the App class.
- Provide a non-null Lifetime in OnFrameworkInitializationCompleted.
- Confirm Application.Current is set first (error 34).
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
- Avalonia Application was not initialized. Make sure you have
- Application.Context.MainLooper was not expected to be null.
- This class should be instanciated from the UI thread
- Activity.Window must be set.
- The control isn't currently attached to a toplevel
AI-assisted analysis of AvaloniaUI/Avalonia@11c5427268 (2026-08-13).
Data as JSON: /api/errors/04ac1af13a4c1891.
Report an issue: GitHub.