.NET for Android XA4322 figyelmeztetés

Példaüzenetek

warning XA4322: Skipping library ProGuard configuration file 'obj/Debug/net10.0-android/lp/0/jl/proguard.txt' (from NuGet package 'Acme.SomeLibrary' 1.2.3) because it contains the unsupported global option '-printmapping'. Global ProGuard options are only allowed in application projects.

Issue

Egy Android-kódtár (.aar) egy proguard.txt fájlt (egy „felhasználói ProGuard-konfigurációt”) tartalmazott, amely globális ProGuard-beállítást tartalmaz, mint például a -dontoptimize, -dontobfuscate, -printmapping, -printconfiguration, -printusage, -printseeds vagy -dump.

Ezek a beállítások szabályozzák a teljes buildet (például ahol az R8 írja a leképezési fájlt), és csak a tárat használó alkalmazásprojektnek kell beállítania. Ezek nem lehetnek egy .aarproguard.txt-jében. Ez megegyezik az Android Gradle Plugin 9.0 által bevezetett működéssel, amelyben az R8 vagy meghiúsítja a könyvtár közzétételét, vagy csendben figyelmen kívül hagyja az ilyen globális beállításokat, amikor azok egy előre lefordított függőségben (JAR vagy AAR) jelennek meg. A build működésének fenntartása érdekében az Android .NET kihagyja a teljes jogsértő fájlt az R8 meghívása előtt, és kibocsátja ezt a figyelmeztetést.

Megoldás

Ha Ön a tár tulajdonosa, távolítsa el a globális beállításokat az proguard.txt / ProguardConfiguration elemekből, és állítsa be őket az alkalmazásprojekt sajátjába ProguardConfiguration (például a leképezési fájl írási helyét meghatározó beállítással).$(AndroidProguardMappingFile) A globális beállítások eltávolítása után a kódtár megőrzési szabályai ismét át lesznek adva az R8-nak.

Ha nem Ön a tulajdonosa a tárnak, küldjön egy problémát a fenntartóinak, és kérje meg őket, hogy távolítsák el a nem engedélyezett beállításokat. Addig az R8 nem fogja látni a könyvtár proguard.txt elemében található megőrzési szabályok egyikét sem, ami azt okozhatja, hogy a szükséges kódot is eltávolítja. Kerülő megoldásként adjon hozzá egyenértékű -keep szabályokat a saját alkalmazásához ProguardConfiguration .