在使用Proguard瀏覽各種有關問題和混淆的查詢後使用Jackson庫後混淆的錯誤,我已經到了讓我覺得我可能只是只有一個具有此特定問題。因此,這個職位。使用Proguard使用Proguard
我有一個相當標準的android應用程序,它使用基於JSON的REST調用來交換數據。我利用Jackson
庫來解析JSON數據。一切都完美無缺地工作,直到我們決定使用Proguard爲我們的發佈版本加入混淆。在整理出一個回調相關問題的世界之後,我終於被困在與傑克遜圖書館有關的問題上。
基本上,行ObjectMapper om = new ObjectMapper()
- 只是不工作!我不斷收到以下錯誤在該行:
Caused by: java.lang.ExceptionInInitializerError
at org.codehaus.jackson.map.ObjectMapper.<clinit>(Unknown Source)
... 8 more
Caused by: java.lang.NullPointerException
at org.codehaus.jackson.map.introspect.VisibilityChecker$Std.<init>(Unknown Source)
at org.codehaus.jackson.map.introspect.VisibilityChecker$Std.<clinit>(Unknown Source)
... 9 more
讀取與包括外部庫的其他職位的主機後,使proguard的無視傑克遜庫類,開啓和關閉的優化和收縮的標誌,我現在只是無能爲力。
我已經列入我proguard.cfg
文件傑克遜的緣故各種事情 -
-dontskipnonpubliclibraryclassmembers
-dontoptimize
-dontshrink
-libraryjars xtraLibs/joda-time-1.6.2.jar;xtraLibs/xml-apis.jar;xtraLibs/jsr311-api-0.8.jar;xtraLibs/stax2-api-3.0.0.jar;xtraLibs/httpmime-4.0.1.jar
在這些,我已經切換了dontoptimize
和dontshrink
標誌。但結果始終如一。
在我一直試圖解決這個問題的時候,我一直對進入Proguard圖書館的努力感到驚訝和敬畏。只是當事情不起作用時,他們有點混淆。
Proguard的版本 - 4.6
eric lafortune - 非常感謝你**非常**! 面對這種情況的任何人,請在sourceforge論壇尋找整個郵件鏈的解決方案 - https://sourceforge.net/projects/proguard/forums/forum/182456/topic/4867948/index/page/1 – anirvan
隨着傑克遜2.1.4我需要這些除了上述屬性:'-keepattributes Signature','-keepnames class com.fasterxml.jackson。** {*; }','-dontwarn com.fasterxml.jackson.databind。**' – ashughes
好評。我也需要這個: -keepclassmembers public final enum org.codehaus.jackson.annotate.JsonAutoDetect $ Visibility { public static final org.codehaus.jackson.annotate.JsonAutoDetect $ Visibility *; } – Sean