2017-02-10 8 views
2

私はAndroidアプリケーション内でJackson JSONライブラリを使用してJSONをREST APIから解析しています。私はObjectMapper.readValueObjectMapper.treeToValueを使用してJSONをオブジェクトにデシリアライズします。 'debug'ビルドバリアントを実行するたびにうまく動作しますが、 'release'ビルドを実行すると、オブジェクトの作成に失敗し、代わりにnullが返されます。Android - Jackson JSONパーサーは 'release'にヌル値を返します。

私はProguardの設定が正しく設定されていることを確認しましたが、私はProguardを使用せず、App内のProguardへの参照をすべて削除しました。 'リリース'ビルドで問題を引き起こしていることはありますか?

ジョナサン

答えて

0

は、問題は、私は私の活動のクラス内で宣言された私のJSONをdeserialiseするために使用していたクラス、したがって、内部クラスによるものであったが判明します。私は内部クラスがJackson ObjectMapperと一緒に使用できることを読んでいます。これは静的であると宣言されているので、なぜ 'リリース'モードで動作しなかったのかが正確にはわかりません。私が通常のパブリッククラスになるように移動するとすぐに、すべてうまく動作しました。

0

これは私が経験した同様の状況を説明した唯一の記事でしたが、私の場合は内部クラスがありませんでした。 一部のフィールドはパッケージプライベートであることが原因であることが判明しました。 デバッグビルドではすべてうまく動作しましたが、リリースビルドではこれらのフィールドはnullでした。 パブリックに変更され、正常に動作しました。ゲッター/セッターをすべて設定するとおそらく動作しますが、試してみませんでした。

関連する問題