2012-06-14 30 views
15

używam biblioteki Jackson-json w projekcie Android, a podczas eksportowania aplikacji podczas korzystania PROGUARD do zaciemniania, otrzymuję następujące błędy:Problemy z wykorzystaniem biblioteki Jackson-json przy użyciu PROGUARD

Proguard returned with error code 1. See console 
Warning: com.fasterxml.jackson.databind.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry 
Warning: com.fasterxml.jackson.databind.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry 
Warning: com.fasterxml.jackson.databind.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry 
Warning: com.fasterxml.jackson.databind.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry 
Warning: com.fasterxml.jackson.databind.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry 
You should check if you need to specify additional program jars. 
Warning: there were 5 unresolved references to classes or interfaces. 
You may need to specify additional library jars (using '-libraryjars'). 
java.io.IOException: Please correct the above warnings first. 
at proguard.Initializer.execute(Initializer.java:321) 
at proguard.ProGuard.initialize(ProGuard.java:211) 
at proguard.ProGuard.execute(ProGuard.java:86) 
at proguard.ProGuard.main(ProGuard.java:492) 

Próbowałem grać z ustawieniami projektu, dodawałem "-libraryjars" do innych słoików i wiele innych rzeczy, ale nic nie pomogło.

Odpowiedz

37

ok, Dodałem kolejne rzeczy, które zostały zebrane z wielu stron internetowych:

-libraryjars libs/jackson-annotations-2.0.0.jar 
-libraryjars libs/jackson-core-2.0.0.jar 

-dontskipnonpubliclibraryclassmembers 

-keepattributes *Annotation*,EnclosingMethod 

-keepnames class org.codehaus.jackson.** { *; } 

-dontwarn javax.xml.** 
-dontwarn javax.xml.stream.events.** 
-dontwarn com.fasterxml.jackson.databind.** 

razem z następnym kodem dla każdej klasy, który jest używany do JSON (z dostać & zestawu), I Myślę, że apk jest tworzony, ale nie jestem pewien, czy to, co napisałem, wystarczy, aby działało dobrze, a także, jeśli niektóre z tego, co napisałem, nie są potrzebne:

-keep public class MyClass.** { 
    public void set*(***); 
    public *** get*(); 
} 
+2

ładne ... działa to bez żadnego problemu. –

+1

Pracuję też dla mnie, dzięki. –

+1

Nie zminimalizowałem tutaj poleceń. jeśli ktoś może mi powiedzieć, które linie nie są potrzebne, proszę dać mi znać. –

Powiązane problemy