.NET para o erro XA1043 do Android

Mensagens de exemplo

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.

Issue

dotnet run precisa de algo para executar no dispositivo. Ele procura um item executável <activity> em AndroidManifest.xml e recorre a um elemento <instrumentation> para aplicativos que não têm interface do usuário, como um host de benchmark. Nenhum dos dois foi encontrado.

Solução

Declare uma atividade com um MAIN/LAUNCHER filtro de intenção:

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

Ou, para um aplicativo que não tem nenhuma atividade, declare uma instrumentação:

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

Você também pode especificar explicitamente o nome da classe a ser iniciada com o $(AndroidLaunchActivity) ou $(AndroidInstrumentation) Propriedades do MSBuild.