Erreur XA1043 de .NET pour Android

Exemples de messages

error XA1043: Could not determine what to launch: 'obj/Debug/net11.0-android/android/AndroidManifest.xml' does not contain a launchable <activity> or an <instrumentation> element. Set the $(AndroidLaunchActivity) or $(AndroidInstrumentation) MSBuild property to specify one.

Problème

dotnet run a besoin de quelque chose à lancer sur l’appareil. Il recherche un <activity> pouvant être lancé dans AndroidManifest.xml, et se rabat sur un élément <instrumentation> pour les applications qui n’ont pas d’interface utilisateur, comme un hôte de banc d’essai. Ni l’un ni l’autre n’a été trouvé.

Solution

Déclarez une activité avec un MAIN/LAUNCHER filtre d’intention :

[Activity (MainLauncher = true)]
public class MainActivity : Activity
{
}

Ou, pour une application qui n’a aucune activité, déclarez une instrumentation :

[Instrumentation (Name = "com.companyname.myapp.MyInstrumentation")]
public class MyInstrumentation : Instrumentation
{
    protected MyInstrumentation (IntPtr handle, JniHandleOwnership ownership)
        : base (handle, ownership) { }
}

Vous pouvez également indiquer explicitement la classe à lancer avec le $(AndroidLaunchActivity) ou $(AndroidInstrumentation) Propriétés MSBuild.