Привязка к данным не работает после обновления до подключаемого модуля 2.3
После обновления до classpath 'com.android.tools.build:gradle:2.3.0'
и переходя на встроенный процессор аннотаций, я получил следующую ошибку для всех сгенерированных DataBinding классов:
:app:compileInternalDebugJavaWithJavac
E:\Projects\Work-projects\mediteo-android\app\src\main\java\com\mediteo\mobile\presentation\daily\intake\adapter\DailyIntakeItem.java:18: error: package com.mediteo.mobile.databinding does not exist
import com.mediteo.mobile.databinding.DailyIntakeHeaderItemBinding;
^
E:\Projects\Work-projects\mediteo-android\app\src\main\java\com\mediteo\mobile\presentation\daily\intake\adapter\DailyIntakeItem.java:19: error: package com.mediteo.mobile.databinding does not exist
import com.mediteo.mobile.databinding.DailyIntakeItemBinding;
........
Error:A default public constructor with no argument must be declared in IntakeLocal if a custom constructor is declared.
* What went wrong:
Execution failed for task ':app:compileInternalDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Однако я могу перейти к этим файлам в Android Studio IDE
public class DailyIntakeHeaderItemBinding extends android.databinding.ViewDataBinding {
........
3 ответа
У меня была та же ошибка, и я мог ее исправить, добавив в зависимости build.gradle приложения:
apt 'com.android.databinding:compiler:2.3.0'
Для меня проблема была в новой команде обработки аннотаций annotationProcessor
Стоит обратить внимание на все библиотеки, которые использовали apt
(сейчас annotationProcessor
) Коренная причина была Error:A default public constructor with no argument must be declared in IntakeLocal if a custom constructor is declared.
, это кинжал ошибки.
Чтобы это исправить, я должен обновить lombok до последней версии:org.projectlombok:lombok:1.16.14
Попробуйте аннулировать кэши / перезапустить. Или может быть чистой сборки.