March 14th, 2008

Я

ProGuard 4.x - гадость

За последние две недели нашёл три бага, причём два из них через чур гадкие. Сначала 4.2 beta валился на стадии компиляции с stack size become negative, но это фигня. Стал использовать 4.1. После пары часов выяснил, что теперь опция assumenosideeffects действует не только на методы указанного класса и унаследованные от него классы, но и на все суперклассы! Переписка через баг-трекинг с автором ни к чему не привела. То ли он меня не понял, то ли ещё что.
Позавчера на двух мобилах приложение стало валиться с IllegalMonitorStateException. На эмуляторе всё нормально, на других двух мобилах всё нормально, дебажная версия везде идёт нормально. Перекопал весь код, как исходники, так и декомпилированный и дизассемблированные получившиеся классы, на предмет левых вызовов wait и notify, только вчера вечером дошло попробовать другую версию обфускатора. На 3.11 всё пошло нормально.
В общем, хоть четвёка и оптимизирует лучше как минимум по размеру jar, но пока нафиг.
Остаюсь на 3.11.
Если кому инетерсно, баг-трекинг тут Ошибка с assumenosideeffects уже в состоянии Closed, но что решил автор пока не ясно.