我在Android应用中使用Jackson JSON库来解析REST API中的JSON。除了我使用ObjectMapper.readValue
和ObjectMapper.treeToValue
将JSON反序列化为对象的几个实例之外,一切正常。每次运行“调试”时都可以正常工作。构建变体,但在运行'发布'构建它无法创建对象而只返回null。
我已经阅读了很多关于确保正确配置Proguard设置的内容,但我没有使用Proguard并且在我的应用中删除了对Proguard的所有引用。还有其他任何可能导致“发布”问题的问题吗?建?
乔纳森
答案 0 :(得分:1)
原来问题是由于我用来反序列化我的JSON的类是在我的activity类中声明的,因此是一个内部类。我读到内部类可以与Jackson ObjectMapper一起使用,只要它们被声明为静态,这是不确定的,为什么它不能在'release'模式下工作。一旦我把它变成一个普通的公共课,它一切都很好。
答案 1 :(得分:1)
这是我发现的唯一一篇描述我遇到的类似情况的帖子,但在我的情况下,没有内部课程。 事实证明,这是因为某些字段是包私有的。 在调试版本中一切正常,但在发布版本中,这些字段为空。 将它们更改为公开,并且工作正常。为所有人设置getter / setter可能也会有效,但我没有尝试过。