2012-03-05 21 views
11

prima di tutto, mi dispiace se questo argomento è stato risposto, ma non l'ho trovato ...Proguard con Android e Google API client

Sono nuovo con Android e Proguard. Alla fine dello sviluppo della mia appicazione, voglio ridurre le sue dimensioni usando proguard, ovviamente. Come sto usando alcune librerie dal client di google api nella mia applicazione, li ho aggiunti come jar esterni.

Bene, la mia app funziona correttamente senza passare da proguard, ma quando provo ad esportarla, inizia il mio mal di testa. Un sacco di avvertimenti che non so come saltare o organizzare. Qualcosa come questo:

[2012-03-05 07:20:06 - CollaJoveThreads] Proguard returned with error code 1. See console 
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalence: can't find referenced class javax.annotation.Nullable 
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalence: can't find referenced class javax.annotation.Nullable 
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalence: can't find referenced class javax.annotation.Nullable 
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalences$Impl$1: can't find referenced class javax.annotation.Nullable 
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalences$Impl$1: can't find referenced class javax.annotation.Nullable 

e più simile.

Ho seguito i consigli sui sviluppatori di Google, e ha aggiunto queste righe alla mia proguard.cfg:

# Needed by google-api-client to keep generic types and @Key annotations accessed via reflection 
-keepclassmembers class * { 
    @com.google.api.client.util.Key <fields>; 
} 

-keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault,*Annotation* 

-dontwarn sun.misc.Unsafe 

ma continua apparendo tutti questi messaggi di avviso. E quando ho provato a utilizzare l'opzione '-dontwarn', la mia app si blocca.

Ho letto queste domande, e di più:

Chiunque può aiutare?

+1

Spiacente, l'ho trovato: mancava il file jar "jsr305-1.3.9" (non mi ero reso conto prima). Grazie di tutto. – emiquelgavalda

risposta

16

Ciao So che questo è stato già risolto aggiungendo il file jar jsr305 al progetto. Tuttavia mi ci è voluto un po 'per capire dove avrei potuto trovare questo barattolo e cosa farne.

è possibile ottenere la versione più recente di questo vaso in here Scarica l'ultima vaso e metterlo nella cartella libs, quindi aggiungerlo al tuo percorso di generazione in Eclipse e tutto dovrebbe essere giusto per andare.

Questo ha risolto anche tutti i miei problemi.

+11

Per gli utenti di Gradle, basta aggiungere 'compile 'com.google.code.findbugs: jsr305: 2.0.2'' nelle dipendenze build.gradle. – Jonik

Problemi correlati