.NET-varning för Android XA1027

Exempelmeddelanden

warning XA1027: The 'EnableProguard' MSBuild property is set to 'true' and the 'AndroidLinkTool' MSBuild property is empty, so 'AndroidLinkTool' will default to 'proguard'.
error XA1011: Using ProGuard with the D8 DEX compiler is no longer supported. Please set the code shrinker to 'r8' in the Visual Studio project property pages or edit the project file in a text editor and set the 'AndroidLinkTool' MSBuild property to 'r8'.

Problematik

Projektet är för närvarande konfigurerat för att använda D8 DEX-kompilatorn och har den äldre EnableProguard MSBuild-egenskapen inställd true på utan något värde inställt för den nyare AndroidLinkTool MSBuild-egenskapen. Detta resulterar i ett XA1011-fel eftersom ProGuard-kodminskaren inte längre är kompatibel med D8 DEX-kompilatorn.

Lösning

  1. Redigera projektfilen i Visual Studio eller någon annan textredigerare och ta bort alla gamla <EnableProguard> element.

  2. När du har sparat projektfilen öppnar du den i Visual Studio som vanligt och ställer in Kodkrympare i Visual Studios projektinställningar till r8, eller fortsätter redigera projektfilen i textredigeraren och anger AndroidLinkTool egenskapen MSBuild till r8:

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
      <AndroidLinkTool>r8</AndroidLinkTool>
    </PropertyGroup>
    

R8 kan i vissa fall generera nya byggvarningar eller fel jämfört med ProGuard, så ProGuard-reglerna för projektet kan kräva några uppdateringar för att lösa eventuella nya varningar eller fel som visas efter den här ändringen.