?

Log in

No account? Create an account

Previous Entry

Теперь уже в этой теме прошу писать всех, кто хотел бы что-то обсудить – статьи на сайте или же просто какие-то интересные/актуальные вопросы. По результатам сбора пожеланий опять-таки будут созданы темы для обсуждения. Или же статьи, что тоже реально.

Я был бы рад, если бы анонимные комментарии и вопросы были подписаны – проще отвечать.

Comments

(Anonymous)
Oct. 12th, 2010 04:26 pm (UTC)
Re: Хранение базы данных на диске
Евгений, большое спасибо за советы! Сегодня испробовали приложение - работает!! :)))

Однако, возникла проблема с защитой исходного кода: провел обфускацию (в ProGuard'e) и десериализация теперь выдает ClassNotFoundException. Это из-за обфускации или могут быть другие причины? (Заменяю "обфускованный")) файл на оригинальный - все работает, как положено).
skipy_ru
Oct. 12th, 2010 07:09 pm (UTC)
Re: Хранение базы данных на диске
Зависит от. Если с обфускированными классами работает сериализация, а потом десериализация, но не работает десериализация ранее сериализованного объекта - естественно, дело в обфускации. Точнее, в изменении имен. При сериализации в поток кроме имен классов пишутся и имена полей классов, чтобы иметь возможность восстанавливать данные при изменившемся порядке полей, например. Скорее всего обфускатор эти имена меняет. При использовании Externalizable такой проблемы возникнуть не должно - в поток пишутся только данные.

Так что если работает полный цикл - сначала сериализация, потом десериализация - можете не обращать внимания на эту ошибку. Она временная, связанная с изменением имен. Если же имена будут изменяться и в проышленном режиме - например, обфускатор каждый раз по-другому будет поля обзывать - имеет смысл посмотреть на Externalizable.