2011-12-16 18 views
8

sto cercando di eseguire Proguard sul mio app Android e incorrere in problemi.Proguard e Android :(

Sto usando vaso SpongyCastle (copia e passato della piena castello gonfiabile con il pacchetto rinominato in modo che non sia in conflitto con gli androidi castello gonfiabile costruito in versione)

Durante l'esecuzione di Proguard vedo il seguente

Come posso risolvere questo problema? Aggiungi ai miei rt.jar librerie?

il punto di Proguard è quello di ridurre il codice, ma continuo ad aggiungere barattoli per aggirarli cita dove proguard si lamenta che non riesce a trovare una classe! Mi sto perdendo qualcosa?

[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.InitialDirContext 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.InitialDirContext 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchControls 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchControls 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchControls 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchControls 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchControls 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.DirContext 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.NamingEnumeration 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.NamingEnumeration 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchResult 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchResult 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.Attributes 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.Attribute 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.Attribute 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.NamingEnumeration 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.DirContext 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.NamingException 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.DirContext 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.NamingEnumeration 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.Attributes 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.DirContext 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.DirContext 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchResult 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.NamingEnumeration 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchControls 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.NamingEnumeration 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.NamingException 
[proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.DirContext 
[proguard] Note: the configuration refers to the unknown class 'android.app.backup.BackupAgentHelper' 
[proguard] Note: the configuration refers to the unknown class 'com.android.vending.licensing.ILicensingService' 
[proguard] Note: there were 2 references to unknown classes. 
[proguard]  You should check your configuration for typos. 
[proguard] Warning: there were 57 unresolved references to classes or interfaces. 
[proguard]   You may need to specify additional library jars (using '-libraryjars'), 
[proguard]   or perhaps the '-dontskipnonpubliclibraryclasses' option. 

UILD FAILED 
:\AndroidSDK\android-sdk_r12-windows\android-sdk-windows\tools\ant\build.xml:713: Please correct the above warnings first. 

Aggiornamento

ANT Script 

ho usato android update project --path . per generare il build.xml come il progetto è stato creato qualche tempo fa e non sono state apportate modifiche

<?xml version="1.0" encoding="UTF-8"?> 
    <project name="RootActivity" default="help"> 
     <loadproperties srcFile="local.properties" /> 
     <property file="ant.properties" /> 
     <loadproperties srcFile="project.properties" /> 
     <fail message="sdk.dir is missing. Make sure to generate local.properties using 'android update project'" unless="sdk.dir" /> 
     <import file="${sdk.dir}/tools/ant/build.xml" /> 
    </project> 
+0

Puoi pubblicare la parte del tuo script di formica responsabile? Questo sembra un problema con l'importazione delle librerie java standard in Android ... – SuperTron

+0

Ho usato il progetto di aggiornamento di Android --path. per generare il file build.xml poiché il progetto è stato creato qualche tempo fa e non ho apportato alcuna modifica < LoadProperties SRCFILE = "project.properties" /> user964283

+0

C'è un problema correlato [numero 27612] (http://code.google.com/p/android/issues/ dettaglio? id = 27612). –

risposta

4

I don 'Penso che sia necessario aggiungere rt.jar alle tue librerie. È necessario assicurarsi di fare riferimento in modo corretto nel tuo script proguard. Dai un'occhiata a here per un esempio. Questa linea nella sezione 2 è il creatore di soldi:

-libraryjars ${java.home}/lib/rt.jar 

Anche se, che i cambiamenti di sintassi se si utilizza la notazione XML per Proguard. Se pubblichi la parte dello script della formica che è responsabile, posso provare ad essere di maggiore aiuto. Spero che questo ti aiuti!

+0

che ha funzionato! grazie – user964283

18

Aggiungere quanto segue, -dontwarn javax.naming.**, alla configurazione Proguard.

Sono solo avvertimenti e ignorarli non dovrebbe essere un problema.

+0

anche questo funziona, grazie – user964283

+9

Questa è la soluzione raccomandata ufficialmente. Il pacchetto di denominazione è mancante su Android, ma a quanto pare questo non causa alcun problema. –

+0

Per gli altri che hanno lo stesso problema ma con una build basata su gradle (Android Studio) - dai un'occhiata a questa risposta: http://stackoverflow.com/q/18481752/1041533 e assicurati di includere correttamente entrambi i file proguard!Quello predefinito e il tuo con sopra dichiarazioni in esso – AgentKnopf

Problemi correlati