Leer en inglés

Compartir a través de


Advertencia de .NET para Android XA1027

Mensajes de ejemplo

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

Problema

El proyecto está configurado actualmente para usar el compilador D8 DEX y tiene la propiedad de MSBuild anterior EnableProguard establecida true en sin ningún valor establecido para la propiedad de MSBuild más reciente AndroidLinkTool . Esto produce un error XA1011 porque el reductor de código ProGuard ya no es compatible con el compilador D8 DEX.

Solución

  1. Edite el archivo de proyecto en Visual Studio u otro editor de texto y quite todos los elementos antiguos <EnableProguard> .

  2. Después de guardar el archivo del proyecto, ábralo en Visual Studio como de costumbre y establezca el reductor de código en las páginas de propiedades del proyecto de Visual Studio en r8, o siga editando el archivo del proyecto en el editor de texto y establezca la AndroidLinkTool propiedad r8MSBuild en :

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

En algunos casos, R8 podría producir nuevas advertencias de compilación o errores en comparación con ProGuard, por lo que las reglas de ProGuard para el proyecto podrían requerir algunas actualizaciones para resolver las nuevas advertencias o errores que aparecen después de este cambio.