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

    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 слишком нестабильным. Такое ощущение будто играешь в рулетку. Вот так радужный свет превратился в серую печаль :(
    Используете ли вы Java 8 при разработке под андроид?
    Вы используете Котлин?

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Поделиться публикацией
    Похожие публикации
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 9
    • –6
      Почему нет варианта «Использую Котлин»? Ведь это лучше практическое применение новомодному языку.
      • +2
        Как-то позабыл про него
        • 0
          Добавил второй опрос специально для людей пишущих на котлин
          • –1
            Если бы им ещё можно было пользоваться. Редактор в Android Studio лагает от котлина даже на топовом железе.
          • +5

            Зачем пинать того, кто давно умер? О смерти Джека объявили еще пол года назад. https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html Поддержка 8-ой Джавы теперь добавлена в грейдл плагин. https://developer.android.com/studio/write/java8-support.html

            • 0
              Круто! Я не знал что поддержка 8-ой Джавы теперь добавлена в грейдл плагин, везде эти устаревшие статьи, которые по сто лет никто не обновляет. Спасибо.

              Пинать того, кто давно умер нужно для того что бы удостоверится в его смерти :)
              • +7
                Я не знал что поддержка 8-ой Джавы теперь добавлена в грейдл плагин, везде эти устаревшие статьи, которые по сто лет никто не обновляет.

                Потому что вместо устаревших статей, нужно читать https://developer.android.com

          • 0
            Была аналогичная проблема, откатился к 7й. Жду релиз 3й студии.

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.