在使用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