2012-02-10 12 views
11

Desidero compilare Proguard con il mio progetto Android con alcuni progetti di libreria Android aggiuntivi. In effetti, la maggior parte del codice e delle risorse giacciono in queste librerie.Progetto libreria Android: offuscamento e conservazione delle risorse

Ho aggiunto la riga "proguard.config = proguard.cfg" in project.properties del progetto principale, ho configurato cfg-file (-libraryjars .. \ libs). Quindi - tasto destro del mouse, Strumenti Android -> Esporta pacchetto di applicazioni con firma. Progetto ADT compilato per il rilascio ma l'app si è arrestata in modo anomalo al primo avvio: mentre leggevo dal registro, era a causa di un puntatore di risorse errato.

Ho decompilato progetto e scoperto cosa molto strana: se dichiaro risorsa nella libreria, quindi risorsa puntatore su di esso diventa 0.

problema non scompare quando aggiungo linea "proguard.config = proguard.cfg "in project.properties di tutto il mio progetto di libreria Android.

Qualche soluzione?

Edit: guardare frammento di proguard.cfg:

-optimizationpasses 5 
-dontusemixedcaseclassnames 
-dontskipnonpubliclibraryclasses 
-dontpreverify 
-verbose 
-optimizations ! 

-printusage unused.txt 
-optimizationpasses 2 
-printmapping mapping.txt 
# -overloadaggressively 
-dontusemixedcaseclassnames 
-dontskipnonpubliclibraryclasses 
-dontpreverify 
-verbose 
-dump class_files.txt 
-printseeds seeds.txt 

-libraryjars ..\libs 
+0

Perché è necessaria la configurazione proguard nei progetti di libreria? È la configurazione proguard nel progetto di destinazione che viene utilizzato. – pandre

+0

Non importa se aggiungo o rimuovo "proguard.config" nei progetti di libreria. Ne ho parlato solo per informazioni complete. – QuickNick

+0

Pubblica il tuo file di configurazione proguard. – 500865

risposta

1

Sei sicuro di avere gli strumenti più recenti? Come Eclipse Indigo, ADT v16.0.1 e proguard 4.7? Ho anche avuto problemi prima di aggiornare agli strumenti più recenti.

+0

Uso gli ultimi aggiornamenti di ADT (controllo regolarmente gli aggiornamenti) e strumenti Android. Eclipse ha la versione "Helios". – QuickNick

+0

Causa oggi il plugin ADT mi consente di compilare la libreria con l'offuscamento, ho deciso di chiudere la domanda e regalare la risposta accettata. – QuickNick

1

Come includere/riferimento ai progetti di libreria Android? Se lo leggo correttamente, li aggiungi come barattolo? In tal caso, potresti davvero avere qualche problema con le risorse fornite dai progetti della biblioteca.

Se ho ragione, provare che:

utilizzare le impostazioni progetto e aggiungere i vostri progetti di libreria lì. Non usare alcuni barattoli esportati per questo. Il modo in cui un progetto di libreria Android funziona è molto diverso da come funziona una normale libreria java.

+0

Includo il riferimento per ALP mentre stai descrivendo: Impostazioni progetto -> Aggiungi libreria. Nessun vasetto esportato. – QuickNick

Problemi correlati