Proguardを使用して問題が発生した場合のすべての種類のクエリを精査した後、私はのしか持っていないと感じています問題。したがって、ポスト。Proguardを使用してJacksonライブラリのポスト難読化でエラーが発生しました
JSONベースのREST呼び出しを使用してデータを交換する、かなり標準的なAndroidアプリがあります。私はJackson
ライブラリを使ってJSONデータを解析します。 Proguardを使用してリリースビルドに難読化を組み込むことを決定するまで、すべてが完璧に動作していました。コールバック関連の問題の世界を整理した後、ついにジャクソンのライブラリに関連する問題に悩まされています。
基本的には、ObjectMapper om = new ObjectMapper()
のラインは機能しません。私は、フラグを最適化オンオフや縮小、ProGuardのは、ジャクソンライブラリクラスを無視すること、を含む外部ライブラリに関連する他の記事のホストを読んだ後
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.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
エリックlafortune - **どうもありがとうございましたので、**! このような状況に直面している方は、sourceforgeフォーラム(https://sourceforge.net/projects/proguard/forums/forum/182456/topic/4867948/index/page/1)のメールチェーン全体から解決策を探してください。 – anirvan
Jackson 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 $可視性{ public static final org.codehaus.jackson.annotate.JsonAutoDetect $ Visibility *; } – Sean