Прочитать на английском

Поделиться через


Предупреждение .NET для Android XA1027

Примеры сообщений

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

Проблема

В настоящее время проект настроен для использования компилятора D8 DEX и имеет более старое EnableProguard свойство true MSBuild без каких-либо значений, заданных для нового AndroidLinkTool свойства MSBuild. Это приводит к ошибке XA1011 , так как сжатие кода ProGuard больше не совместимо с компилятором D8 DEX.

Решение

  1. Измените файл проекта в Visual Studio или другой текстовый редактор и удалите все старые <EnableProguard> элементы.

  2. После сохранения файла проекта откройте его в Visual Studio как обычно и задайте для страниц свойств проекта Visual Studio значение r8 или продолжите редактирование файла проекта в текстовом редакторе и задайте AndroidLinkTool для свойства MSBuild значение r8:

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

В некоторых случаях R8 может создавать новые предупреждения сборки или ошибки по сравнению с ProGuard, поэтому правила ProGuard для проекта могут потребовать нескольких обновлений для устранения новых предупреждений или ошибок, которые появляются после этого изменения.