2017-02-10 81 views
2

我在Android應用程序中使用Jackson JSON庫從REST API解析JSON。除了幾個我正在使用ObjectMapper.readValueObjectMapper.treeToValue將JSON反序列化爲對象的實例外,一切正常。每次運行'debug'構建變體時它都可以正常工作,但是在運行'release'構建時,它無法創建對象,只是返回null。Android - Jackson JSON解析器在「發佈」版本中返回空值

我已閱讀了很多關於確保Proguard設置配置正確但我沒有使用Proguard並在我的應用程序中刪除對Proguard的所有引用。還有什麼可能會導致「發佈」版本的問題?

喬納森

回答

0

原來,問題是由於我使用到deserialise我的JSON我的活動類中被宣佈爲類,因此一個內部類。我讀過內部類可以與Jackson ObjectMapper一起使用,只要它們被聲明爲靜態的,所以不太確定它爲什麼不能在'release'模式下工作。只要我把它變成一個普通的公開課,它一切正常。

0

這是我發現的唯一的一篇文章,描述了我經歷過的類似情況,但在我的情況下沒有內部類。 事實證明,這是由於一些領域是封裝私人的事實。 在調試版本中一切正常,但在發佈版本上這些字段爲空。 將它們更改爲public並且它工作正常。爲所有人設置getter/setters可能也會工作,但我沒有嘗試。