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

Комментарии (9)


  1. maxzh83
    10.09.2017 17:58
    -6

    Почему нет варианта «Использую Котлин»? Ведь это лучше практическое применение новомодному языку.


    1. vlad2711 Автор
      10.09.2017 17:59
      +2

      Как-то позабыл про него


    1. vlad2711 Автор
      10.09.2017 18:02

      Добавил второй опрос специально для людей пишущих на котлин


    1. asmrnv777
      10.09.2017 21:17
      -1

      Если бы им ещё можно было пользоваться. Редактор в Android Studio лагает от котлина даже на топовом железе.


  1. Mujahit
    10.09.2017 17:59
    +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


    1. vlad2711 Автор
      10.09.2017 18:04

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

      Пинать того, кто давно умер нужно для того что бы удостоверится в его смерти :)


      1. int00h
        10.09.2017 18:26
        +7

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

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


        1. vlad2711 Автор
          10.09.2017 18:26

          Правда жизни


  1. dmlukas
    11.09.2017 17:11

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