Android için .NET uyarısı XA1027

Örnek iletiler

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

Sorun

Proje şu anda D8 DEX derleyicisini kullanacak şekilde yapılandırılmıştır ve daha yeni EnableProguard MSBuild özelliği için herhangi bir değer kümesi olmadan eski true MSBuild özelliği AndroidLinkTool olarak ayarlanmıştır. ProGuard kod küçültücü artık D8 DEX derleyicisi ile uyumlu olmadığından bu bir XA1011 hatasıyla sonuçlanır.

Çözüm

  1. Visual Studio'da veya başka bir metin düzenleyicisinde proje dosyasını düzenleyin ve tüm eski <EnableProguard> öğeleri kaldırın.

  2. Proje dosyasını kaydettikten sonra, visual studio'da her zamanki gibi açın ve Visual Studio proje özellikleri sayfalarında Kod küçültücüsünür8 olarak ayarlayın veya metin düzenleyicisinde proje dosyasını düzenlemeye devam edin ve MSBuild özelliğini olarak AndroidLinkToolayarlayınr8:

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

R8 bazı durumlarda ProGuard ile karşılaştırıldığında yeni derleme uyarıları veya hatalar üretebilir, bu nedenle projenin ProGuard kuralları bu değişiklik sonrasında ortaya çıkan yeni uyarıları veya hataları çözmek için birkaç güncelleştirme gerektirebilir.