Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Messaggi di esempio
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
Una libreria Android (.aar) includeva un file proguard.txt (una "configurazione consumer di ProGuard") che contiene un'opzione globale di ProGuard come -dontoptimize, -printmapping, -dontobfuscate, -printconfiguration, -printusage, -printseeds o -dump.
Queste opzioni controllano l'intera compilazione (ad esempio, dove R8 scrive il file di mapping) e devono essere impostate solo dal progetto dell'applicazione che utilizza la libreria. Non sono consentiti all'interno di un .aarproguard.txt. Ciò corrisponde al comportamento introdotto in Android Gradle Plugin 9.0, in cui R8 fa fallire la pubblicazione della libreria oppure ignora silenziosamente tali opzioni globali quando compaiono in una dipendenza precompilata (JAR o AAR). Per mantenere funzionante la compilazione, .NET per Android ignora l'intero file che causa l'errore prima di richiamare R8 e genera questo avviso.
Soluzione
Se si è proprietari della libreria, rimuovere le opzioni globali dai relativi proguard.txt /
ProguardConfiguration elementi e impostarle invece nel progetto dell'applicazione ( ProguardConfiguration ad esempio, impostando $(AndroidProguardMappingFile) per controllare dove viene scritto il file di mapping).
Dopo aver rimosso le opzioni globali, le regole di mantenimento della libreria verranno passate nuovamente a R8.
Se non si è proprietari della libreria, inviare un problema con i gestori e chiedere loro di rimuovere le opzioni non consentite. Fino ad allora, R8 non vedrà alcuna delle regole keep di proguard.txt questa libreria, il che potrebbe causare la riduzione del codice necessario. Aggiungi regole equivalenti a -keep nel file ProguardConfiguration della tua applicazione come soluzione temporanea.