Ler em inglês

Compartilhar via


.NET para Android aviso XA1028

Mensagens de exemplo

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

Problema

No momento, o projeto está configurado para usar o compilador D8 DEX e tem a propriedade MSBuild mais antiga AndroidEnableProguard definida como true sem nenhum valor definido para a propriedade MSBuild mais recente AndroidLinkTool . Isso resulta em um erro XA1011 porque o redutor de código ProGuard não é mais compatível com o compilador D8 DEX.

Solução

  1. Edite o arquivo de projeto no Visual Studio ou em outro editor de texto e remova todos os elementos antigos <AndroidEnableProguard> .

  2. Depois de salvar o arquivo de projeto, abra-o no Visual Studio como de costume e defina o Redutor de código nas páginas de propriedades do projeto do Visual Studio como r8 ou continue editando o arquivo de projeto no editor de texto e defina a AndroidLinkTool propriedade MSBuild como r8:

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

O R8 pode, em alguns casos, produzir novos avisos ou erros de compilação em comparação com o ProGuard, portanto, as regras do ProGuard para o projeto podem exigir algumas atualizações para resolver quaisquer novos avisos ou erros que apareçam após essa alteração.