Android: Dagger 2 вмешивается в Immutables? - PullRequest
0 голосов
/ 03 сентября 2018

Получение действительно странной проблемы; надеюсь, вы, ребята, можете помочь.

Я давно использую библиотеку Immutables в своем проекте для Android, и у меня не было проблем. Автоматически сгенерированные файлы для неизменяемых объектов расположены в (как пример) build/generated/source/apt/debug/com/package/name/ImmutableClass.java, и проект компилируется и работает нормально.

Недавно я решил использовать Dependency Injection в том же проекте и начал использовать Dagger 2. Я использовал Guice в другом Java-проекте (не Android), но никогда раньше не использовал Dagger. Внезапно я начинаю получать странные ошибки, говоря, что класс Immutables не может быть найден.

Ошибка: error: cannot find symbol class ImmutableClass.

Я попытался удалить созданные мной @Component и @Module, и ошибки исчезли. Самое смешное, что файл ImmutableClass.java все еще находится там же, где и раньше.

Пожалуйста, дайте мне знать ваши мысли. Благодаря.

1 Ответ

0 голосов
/ 03 сентября 2018

Dagger 2 действительно может выдавать странные сообщения об ошибках в сочетании с другими библиотеками кода.

Если вы загляните глубже в ошибки, то, вероятно, найдете другой, который говорит, что «не может найти класс символов DaggerXXXComponent» (или что-то подобное).

Скорее всего, у вас есть проблема, которая приводит к сбою препроцессора Dagger. Затем, поскольку Dagger дает сбой, другой код не запускается, включая Immutables.

Вам необходимо отладить ошибки, которые вызывают сбой Dagger, и тогда ошибки Immutables также исчезнут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...