Auf Englisch lesen

Freigeben über


.NET für Android-Warnung XA1027

Beispielnachrichten

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'.

Abgang

Das Projekt ist zurzeit für die Verwendung des D8 DEX-Compilers konfiguriert und hat die ältere EnableProguard MSBuild-Eigenschaft ohne Wertsatz für die neuere AndroidLinkTool MSBuild-Eigenschaft festgelegttrue. Dies führt zu einem XA1011-Fehler , da der ProGuard-Codeschrumpfer nicht mehr mit dem D8 DEX-Compiler kompatibel ist.

Lösung

  1. Bearbeiten Sie die Projektdatei in Visual Studio oder einem anderen Text-Editor, und entfernen Sie alle alten <EnableProguard> Elemente.

  2. Nachdem Sie die Projektdatei gespeichert haben, öffnen Sie sie wie gewohnt in Visual Studio, und legen Sie den Code-Schrumpfer auf den Projekteigenschaftenseiten von Visual Studio auf r8 fest, oder setzen Sie die Bearbeitung der Projektdatei im Text-Editor fort, und legen Sie die AndroidLinkTool MSBuild-Eigenschaft auf r8:

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

R8 kann in einigen Fällen neue Buildwarnungen oder Fehler im Vergleich zu ProGuard erzeugen, sodass die ProGuard-Regeln für das Projekt möglicherweise einige Aktualisierungen erfordern, um neue Warnungen oder Fehler zu beheben, die nach dieser Änderung angezeigt werden.