Udostępnij przez


Ostrzeżenie platformy .NET dla systemu Android XA1028

Przykładowe komunikaty

warning XA1028: The 'AndroidEnableProguard' 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'.

Problematyka

Projekt jest obecnie skonfigurowany do używania kompilatora D8 DEX i ma starszą AndroidEnableProguard właściwość MSBuild ustawioną na true wartość bez żadnego zestawu wartości dla nowszej AndroidLinkTool właściwości MSBuild. Powoduje to błąd XA1011, ponieważ kompresor kodu ProGuard nie jest już zgodny z kompilatorem D8 DEX.

Rozwiązanie

  1. Edytuj plik projektu w programie Visual Studio lub innym edytorze tekstów i usuń wszystkie stare <AndroidEnableProguard> elementy.

  2. Po zapisaniu pliku projektu otwórz go w programie Visual Studio w zwykły sposób i ustaw zmniejszanie kodu na stronach właściwości projektu programu Visual Studio na r8 lub kontynuuj edytowanie pliku projektu w edytorze tekstów i ustaw AndroidLinkTool właściwość MSBuild na :r8

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

R8 może w niektórych przypadkach tworzyć nowe ostrzeżenia kompilacji lub błędy w porównaniu z ProGuard, więc reguły ProGuard dla projektu mogą wymagać kilku aktualizacji w celu rozwiązania wszelkich nowych ostrzeżeń lub błędów, które pojawiają się po tej zmianie.