Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ukázkové zprávy
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.
Problém
Knihovna pro Android (.aar) dodala soubor proguard.txt („spotřebitelská konfigurace ProGuard“), který obsahuje globální volbu ProGuard, například -dontoptimize, -printmapping, -dontobfuscate, -printconfiguration, -printusage, -printseeds nebo -dump.
Tyto možnosti řídí celé sestavení (například když R8 zapisuje soubor mapování) a musí být nastaveny pouze projektem aplikace, který knihovnu využívá. Nejsou povoleny uvnitř ' .aars proguard.txt. To odpovídá chování zavedenému v Android Gradle Plugin 9.0, kde R8 buď způsobí selhání publikování knihovny, nebo takové globální volby tiše ignoruje, pokud se objeví v předkompilované závislosti (JAR nebo AAR). Aby sestavení fungovalo, .NET pro Android před spuštěním R8 přeskočí celý problematický soubor a vypíše toto upozornění.
Řešení
Pokud vlastníte knihovnu, odeberte ze svých proguard.txt /
ProguardConfiguration položek globální možnosti a místo toho je nastavte ve vlastním ProguardConfiguration projektu aplikace (například nastavením $(AndroidProguardMappingFile) pro řízení, kde se zapisuje soubor mapování).
Po odebrání globálních možností budou pravidla pro zachování knihovny znovu předávána nástroji R8.
Pokud knihovnu nevlastníte, založte problém s jeho správci a požádejte je, aby odebrali nepovolené možnosti. Do té doby R8 neuvidí žádná pravidla keep z proguard.txt této knihovny, což může způsobit odstranění potřebného kódu. Jako alternativní řešení přidejte ekvivalentní -keep pravidla pro vlastní aplikaci ProguardConfiguration .