Quando si costruisce il mio progetto Android, ho aggiunto il seguente al file build.gradle per abilitare Proguard:Gradle Android accumulo risultante APK contiene sia offuscato e le classi non offuscato
buildTypes {
release {
runProguard true
proguardFile 'proguard-project.txt'
proguardFile '../common/proguard-shared.txt'
proguardFile getDefaultProguardFile('proguard-android.txt')
}
}
Tutto costruisce bene, ma quando Smonto il file dex risultante, si scopre che ci sono entrambi i file offuscati e non-offuscati.
Ad esempio, esistono sia common.Base64 che common.a, il primo è non-offuscato, mentre il secondo è.
Non è sicuro che sia correlato, ma il progetto stesso ha una struttura non tipica. Questo è il risultato del fatto che abbiamo una grande base di codice Android con oltre 40 app Android. Stiamo provando a creare un flusso di build basato sul gradle side-by-side della build basata su Eclipse esistente.
Se tutto va bene, intendiamo cambiare la struttura dei file per essere più gradli nativi, e iniziare a usare aromi e tipi di build per avere via con molte delle librerie che abbiamo creato per ovviare alla mancanza di sapori e simili .
Progetto E sopra si basa su una catena di librerie del genere:
E -> D -> C -> B -> A
esempio Il progetto E dipende dalla libreria D che dipende dalla libreria C ... fino a A.
Funziona, grazie, @Xav!. Qualche modo suggerito di "forzare" la pulizia prima di creare un candidato alla release? – Guy
Funziona '' 'gradle clean assembleRelease'''? –
@ThuyTrinh lo fa. Assicurati di fare il "clean" per tutte le dipendenze (ad esempio se hai un progetto multi-modulo, prima pulisci la root e poi assemblaRilascia il sottomodulo che ti serve). – Guy