2011-12-16 16 views
8

Próbuję uruchomić PROGUARD na moim Android app i systemem do zagadnień.Proguard i Android :(

Używam SpongyCastle słoik (kopiowania i przeszłości pełnej nadmuchiwany zamek z pakietem przemianowano więc nie jest to sprzeczne z androidów nadmuchiwany zamek zbudowany w wersji)

Uruchamiając ProGuard widzę następujące

Jak mogę rozwiązać ten problem? Dodaj rt.jar do moich bibliotekami?

Sensem PROGUARD jest zmniejszenie kodu ale wciąż dodajemy słoiki, żeby się nimi ominąć sues, w których proguard skarży się, że nie może znaleźć klasy! Czy czegoś brakuje?

[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. 

Aktualizacja

ANT Script 

użyłem android update project --path . wygenerować build.xml jako Projekt powstał jakiś czas temu i nie dokonano żadnych zmian

<?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

Czy można opublikować część skryptu ant? Wydaje się, że jest to problem z importowaniem standardowych bibliotek java w systemie Android ... – SuperTron

+0

Użyłem projektu aktualizacji Android - ścieżka. do wygenerowania pliku build.xml, ponieważ projekt został utworzony jakiś czas temu i nie wprowadziłem żadnych zmian. < loadproperties SRCFILE = "project.properties" /> user964283

+0

Istnieje powiązany [numer # 27612] (http://code.google.com/p/android/issues/ szczegół? id = 27612). –

Odpowiedz

4

I don Uważa się, że istnieje potrzeba dodania pliku rt.jar do swoich bibliotek. Musisz upewnić się, że właściwie go odnosisz w swoim proguardzie. Zobacz przykład here. Linia ta w punkcie 2 jest ekspres pieniądze:

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

Mimo, że zmiany składni, jeśli użyć notacji xml dla PROGUARD. Jeśli opublikujesz część skryptu ant, który jest odpowiedzialny, mogę spróbować uzyskać więcej pomocy. Mam nadzieję że to pomoże!

+0

który działał! dzięki – user964283

18

Dodaj następującą, -dontwarn javax.naming.**, do konfiguracji Proguard.

To tylko ostrzeżenia, a ignorowanie ich nie powinno stanowić problemu.

+0

to również działa, dzięki – user964283

+9

To jest oficjalnie zalecane rozwiązanie. Na Androidzie brakuje pakietu nazewnictwa, ale najwyraźniej nie powoduje to żadnych problemów. –

+0

W przypadku innych osób mających ten sam problem, ale z kompilacją opartą na gradle (Android Studio) - sprawdź tę odpowiedź: http://stackoverflow.com/q/18481752/1041533 i upewnij się, że oba pliki proguard są poprawne!Domyślny i twój z powyższymi stwierdzeniami – AgentKnopf

Powiązane problemy