Pull to refresh

Jack и Android или Повесть о земле и небе

Reading time 2 min
Views 10K
image

Здравствуйте уважаемые читатели. Сегодня мы поговорим о такой теме как Java 8 и Android. О плюсах и минусах, и прочих интересных темах.

Уже прошло не мало времени со времен выхода 8 Явы, а на андроиде она появилась не так уж давно. Однажды эта история повторялась с переходом на Java 7. И вот мы снова на том же месте.

И вот после танцев с бубном настройки студии вы наконец подключили к своему проекту Java 8.

Плюсы Java 8


Главным плюсом является, вы не поверите, Java 8. Новые фичи действительно полезны, и довольно таки круты. Это и те же самые лямбда выражения, и ссылки на методы, и другие крутые штуки о которых можно писать целый день, а теперь о плохом.

Минусы Java 8


У Java 8 есть один жирный минус — Jack. Дабы подключить новую Яву к проекту нужно и так потратить какое-то время, а с Jack андроид разработка превращается в ад.

Мой красочный опыт


Однажды я решил попробовать что это за зверь. Я добавил Java 8 в свой проект, и я был искренне рад что сделал это, хотя пришлось повозится. Java 8 никак не желала дружить с Dagger'ом. Но после жертвоприношения языческим божествам поиска ответа на stack overflow и прочих достопочтенных местах — результатом стала полностью рабочая приложуха. Все выглядело круто. И я решил для себя раз и навсегда: Java 7 — в утиль, да здравствует Java 8.

Менее радужное продолжение


Свой следущий проект я решил делать на той самой Java 8, о чем позже пожалел. В отличии от предыдущего проекта этот надо было делать быстро и не тратить время на раскачку. Ничто не предвещало беды, пока после очередного билда приложуха крешнулась. Это был старый добрый NullPointerException. Тот еще нежданчик. Он срабатывал когда я питался поменять текст в TextView. Значит TextView == null. Но как? Сделать ButterKnife.bind(this); я не забыл, так в чем же дело? И почему оно крешнулось именно сейчас, ведь раньше все было ок, и я ничего не менял? Решил ребилднуть — все снова ок. Думаю: ладно, что оно было разберусь как-то позже. Снова кое-что изменил, снова билд, и снова NullPointerException. Единственным разумным объяснением было то, что по какой-то весомой причине butterKnife ни черта не делал. После нескольких ребилдов все возвращалось в норму, потом снова крешилось, и После очередного жертвоприношения поиска на разных форумах нашелся ответ: оказывается такая фигня не только у меня, и виной ей является пресловутый Jack(Даже сам Jake Wharton «тепло» отзывался о нем ). Времени разбираться не было, и я вернулся на старую добрую Java 7.

И как оказалось проблемы с Jack были не только у ButterKnife. С тех самых пор я продолжаю работать на Java 7, так как считаю Jack слишком нестабильным. Такое ощущение будто играешь в рулетку. Вот так радужный свет превратился в серую печаль :(
Tags:
Hubs:
-12
Comments 9
Comments Comments 9

Articles