2017-02-10 5 views
2

Я использую библиотеку Jackson JSON в своем приложении для Android для анализа JSON из REST API. Все работает отлично, кроме нескольких случаев, когда я использую ObjectMapper.readValue и ObjectMapper.treeToValue для десериализации JSON для объектов. Он отлично работает каждый раз при запуске варианта 'debug' build, но при запуске сборки 'release' он не создает объект и вместо этого возвращает null.Android - парсер Jackson JSON возвращает нулевое значение в строках 'release'

Я читал много о том, что настройки Proguard настроены правильно, но я не использую Proguard и удалил все ссылки на Proguard в моем приложении. Есть ли что-то еще, что может вызвать проблему с сборкой «release»?

Джонатан

ответ

0

Оказывается, проблема была из-класса, который я использовал, чтобы deserialise мой JSON был объявлен в моем классе деятельности, поэтому внутренний класс. Я читал, что внутренние классы могут использоваться с Jackson ObjectMapper, если они были объявлены static, что это было, поэтому не совсем точно, почему он не работал в режиме «выпуска». Как только я переместил его, чтобы стать обычным публичным классом, все работало нормально.

0

Это было единственное сообщение, которое я нашел, что описал подобную ситуацию, которую я испытал, но в моем случае не было внутреннего класса. Оказывается, это связано с тем, что некоторые поля были частными. Все отлично работало в сборке отладки, но в версии выпуска эти поля были пустыми. Изменил их публично, и все получилось отлично. Настройка getters/seters для всех, вероятно, также будет работать, но я не пробовал.

 Смежные вопросы

  • Нет связанных вопросов^_^