.NET för Android-fel/varning XA1026

Anmärkning

Det här meddelandet tillämpas endast på Xamarin.Android. I .NET för Android aapt2 används alltid och egenskapen $(AndroidUseAapt2) har ingen effekt.

Exempelmeddelanden

warning XA1026: Using AAPT is deprecated in favor of AAPT2. Please enable 'Use incremental Android packaging system (aapt2)' in the Visual Studio project property pages or edit the project file in a text editor and set the 'AndroidUseAapt2' MSBuild property to 'true'.
error XA1026: Using AAPT is not supported in .NET for Android projects that target .NET 6 or higher. Please enable 'Use incremental Android packaging system (aapt2)' in the Visual Studio project property pages or edit the project file in a text editor and set the 'AndroidUseAapt2' MSBuild property to 'true'.

Problematik

Google har avvecklat AAPT-kommandoradsverktyget till förmån för AAPT2 framöver. .NET för Android har därför också markerat <AndroidUseAapt2>false</AndroidUseAapt2> som föråldrad.

Lösning

Uppdatera AndroidUseAapt2 MSBuild-egenskapen till true för att välja AAPT2. Den här egenskapen motsvarar inställningen Använd inkrementellt Android-paketeringssystem (aapt2) på visual studio-projektegenskapernas sidor. Du kan också ta bort <AndroidUseAapt2> från .csproj-filen så att bygget kan välja standardvärdet true.

Viktigt!

AAPT2 tillämpar i vissa fall strängare regler för resursfiler än tidigare AAPT, så vissa justeringar kan behövas om du ser nya felmeddelanden som kommer från själva AAPT2 i stället för från .NET för Android-bygguppgifter.

Om det behövs kan växeln --legacy köra AAPT2 i ett AAPT-kompatibilitetsläge. Lägg till följande i .csproj-filen :

<PropertyGroup>
  <AndroidAapt2CompileExtraArgs>--legacy</AndroidAapt2CompileExtraArgs>
</PropertyGroup>