2012-06-14 33 views
15

Tôi đang sử dụng thư viện jackson-json trong một dự án Android, và khi xuất khẩu các ứng dụng trong khi sử dụng Proguard cho obfuscation, tôi nhận được các lỗi sau đây:vấn đề với việc sử dụng thư viện jackson-json khi sử dụng 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) 

Tôi đã cố gắng để chơi với các thiết lập của dự án, thêm "-libraryjars" để bao gồm các lọ khác, và nhiều thứ khác, nhưng không có gì giúp đỡ.

Trả lời

37

ok, tôi đã thêm những điều tiếp theo mà tôi đã thu thập được từ nhiều trang web:

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

cùng với các mã tiếp theo cho mỗi lớp được sử dụng cho json (với lấy & bộ), i nghĩ rằng các apk đang được tạo ra nhưng tôi không chắc chắn nếu những gì tôi đã viết là đủ để làm cho nó hoạt động tốt, và cũng có thể nếu một số những gì tôi đã viết là không cần thiết:

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

nice ... điều này đang hoạt động mà không có bất kỳ vấn đề nào. –

+1

Làm việc cho tôi, cảm ơn. –

+1

Tôi đã không giảm thiểu các lệnh ở đây. nếu bất cứ ai có thể cho tôi biết những dòng nào là không cần thiết, xin vui lòng cho tôi biết. –

Các vấn đề liên quan