微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Proguard 不与获得 NPE 的 jackson 合作

如何解决Proguard 不与获得 NPE 的 jackson 合作

我最近在我的项目中添加了 jackson 库

实现'com.fasterxml.jackson.core:jackson-databind:2.10.1'

我尝试过的 Proguard 设置

# Jackson

-keep @com.fasterxml.jackson.annotation.JsonIgnoreProperties class * { *; }
-keep class com.fasterxml.** { *; }
-keep class org.codehaus.** { *; }
-keepnames class com.fasterxml.jackson.** { *; }
-keepclassmembers public final enum com.fasterxml.jackson.annotation.JsonAutoDetect$Visibility { 
    public static final com.fasterxml.jackson.annotation.JsonAutoDetect$Visibility *;
}

# General
-keepattributes SourceFile,LineNumberTable,*Annotation*,EnclosingMethod,Signature,Exceptions,InnerClasses

来自here

还尝试了此线程中所述的解决方案 #27687128

也尝试过

  # Proguard configuration for Jackson 2.x

-keep class com.fasterxml.jackson.databind.ObjectMapper {
    public <methods>;
    protected <methods>;
}
-keep class com.fasterxml.jackson.databind.ObjectWriter {
    public ** writeValueAsstring(**);
}
-keepnames class com.fasterxml.jackson.** { *; }
-dontwarn com.fasterxml.jackson.databind.**

来自杰克逊文档here

// It is storing the data in realm in abc.java
 ObjectMapper Obj = new ObjectMapper();
    try{
String jsonStr = Obj.writeValueAsstring(map.get(key));
Metadata.setValue((map.get(key)!=null)?jsonStr:" ");
  }catch (Exception e){

}
 
//after fetching from realm in  xyz.java
      HashMap<String,Object> jsonMap = new HashMap<String,Object>();
    
    
   jsonMap = (HashMap<String,Object>) new Gson().fromJson(Metadata.getValue(),new Typetoken<HashMap<String,Object>>() {
                                }.getType());
    // jsonMap used further
            

我在使用 proguard 构建应用程序时收到空指针异常。无混淆工作正常。我也没有收到有关该问题的任何详细消息,因此很难调试。任何建议表示赞赏。

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。