Привязка данных Android проглатывает ошибки других компиляторов - PullRequest
0 голосов
/ 08 июня 2018

Если есть какие-либо ошибки во время компиляции, классы привязки данных не генерируются - и, таким образом, я получаю массу ошибок, подобных этой:

  symbol:   class DataBindingComponent
  location: class TrainingActivityCompletedSetBinding
  e: S:\ProjectLocation\TrainingActivityCompletedSetBinding.java:60: error: cannot find symbol
  @Nullable DataBindingComponent component)

Проблема заключается в том, что ошибка компиляции невообще связано с привязкой данных, и поэтому я понятия не имею, что на самом деле вызывает ее - и мне приходится вручную копаться в файлах, чтобы найти проблему.

В приведенном выше примере я просто опустил @Inject от конструктора, который этого требует.Было бы замечательно увидеть сообщение об ошибке от Dagger в этом случае, чтобы я мог найти его немедленно, а не копаться во всех классах проектов, чтобы найти его вручную.

Любая помощь будет значительно ценится!


В Android Studio и Databinding в настоящее время установлена ​​версия 3.1.3, ошибка существует по крайней мере с версии 3.0.

Использование Kotlin V1.2.41 и kapt для генерации кода.

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

Временно, обходной путьэто просто отключить привязку данных V2: android.databinding.enableV2=true в gradle.properties .Тем не менее, все еще открыты для лучшего решения.

Ответы [ 3 ]

0 голосов
/ 10 октября 2018

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

Вместо отключения привязки данных V2, вы можете следоватьэто сообщение на форуме, которое демонстрирует, как увеличить количество отображаемых ошибок.Это исправило мою проблему, не отключая V2 каждый раз.

Это решило мою проблему , хотя количество отображаемых ошибок не было заметно округлым, поэтому я не уверенкак работает счет.

https://github.com/google/dagger/issues/306

0 голосов
/ 18 февраля 2019

Я процитировал и продолжил ответ от @Aqluse здесь также из другого потока здесь .

Вот альтернативный вариант решения этой проблемы привязки данных.

1. kapt "androidx.databinding:databinding-compiler:${your gradle version}"
2. android.databinding.enableV2=false
3. check your missing or wrong import XML **check your version control**
4. upgrade your android studio to the latest stable
0 голосов
/ 16 июля 2018

Не могу написать комментарий, поэтому я напишу его здесь.Возможно, вы хотели добавить следующую строку: android.databinding.enableV2=false, чтобы она работала правильно.

...