sto di fronte a un problema davvero strano per giorni ormai ...Proguard ignora file di configurazione di libreria
Ho un app Gradle con due moduli, un modulo principale e un modulo biblioteca.
- In entrambi i moduli ho dichiarato un percorso di file proguard-rules.pro che è corretto
- In entrambi i file .gradle ho minifyEnabled vero
qui è il primo problema: anche se minifyEnabled è falso in biblioteca, viene offuscato. non ha alcun effetto e sembra dipendere dalle impostazioni del modulo principale. Sto usando proguard da un po 'di tempo e non ho mai provato un simile comportamento.
Inoltre, il proguard-rules.pro della libreria sembra essere completamente ignorato. Non importa ciò che dichiaro lì, non è usato e il risultato è sempre lo stesso (sempre decompilato per vedere i risultati). È offuscato con le impostazioni predefinite.
ho usato un nome di file non validi Proguard per vedere se il file è ancora toccato, e in effetti ci sono errori con il nome sbagliato e complaines anche sugli errori di sintassi nel file Proguard ...
I non so se è in qualche modo correlato ad un aggiornamento di Android Studio, in quanto mi ha anche raccomandato di usare "minifyEnabled" invece di "runProguard".
Come posso gestire proguard per utilizzare anche proguard-rules.pro della libreria?
Edit:
Ho fatto un progetto di esempio per chiarire il mio problema
La configurazione Proguard della mia biblioteca
La Gradle della mia biblioteca :
E infine il risultato ottengo sempre. Non importa quello che ho escludere/includere nella configurazione Proguard
Come si può vedere, le regole Proguard funzionare molto bene sul modulo principale. Fa quello che dovrebbe. Ma è sempre offusca completamente la mia libreria di a.a ....
Inoltre ha cancellato completamente l'attività della Biblioteca, che non dovrebbe accadere a tutti
Ciao Eric, prima di tutto la ringrazio per la risposta veloce . Ho tolto completamente l'opzione minifyEnabled nella libreria ora e ho risolto il problema "Il vaso di output è vuoto" ho accennato nell'email, ma proguard ignora la proguard config comunque –
Infatti, mi è sfuggita la cosa consumerProguardFiles. Ora funziona, grazie mille :) –
'consumerProguardFiles' deve essere specificato in' defaultConfig' piuttosto che 'buildTypes/release' in modo che funzioni se proguard in uso in modalità debug e release (ad es. Per evitare il 65k dex limite del metodo). – ashughes