Baca dalam bahasa Inggris

Bagikan melalui


.NET untuk peringatan Android XA1028

Contoh pesan

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

Masalah

Proyek saat ini dikonfigurasi untuk menggunakan pengkompilasi DEX D8 dan memiliki properti MSBuild yang lebih AndroidEnableProguard lama diatur ke true tanpa nilai apa pun yang ditetapkan untuk properti MSBuild yang lebih AndroidLinkTool baru. Ini menghasilkan kesalahan XA1011 karena shrinker kode ProGuard tidak lagi kompatibel dengan pengkompilasi DEX D8.

Solusi

  1. Edit file proyek di Visual Studio atau editor teks lain dan hapus semua elemen lama <AndroidEnableProguard> .

  2. Setelah menyimpan file proyek, buka di Visual Studio seperti biasa dan atur shrinker Kode di halaman properti proyek Visual Studio ke r8, atau lanjutkan mengedit file proyek di editor teks dan atur AndroidLinkTool properti MSBuild ke r8:

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

R8 mungkin dalam beberapa kasus menghasilkan peringatan atau kesalahan build baru dibandingkan dengan ProGuard, sehingga aturan ProGuard untuk proyek mungkin memerlukan beberapa pembaruan untuk menyelesaikan peringatan atau kesalahan baru yang muncul setelah perubahan ini.