Dagger 2 на Android, отсутствуют сообщения об ошибках
Я использую Dagger 2 в своем проекте Android, и у меня возникают проблемы с его отладкой. Я знаю, что компиляция не удалась из-за ошибки в моей настройке кинжала 2 (была раньше), но почти невозможно отследить ее, потому что я не получаю правильное сообщение об ошибке, сообщающее, в чем проблема. Все, что я получаю, это сообщения, которые показывают, что обработка аннотации не удалась. По линии:
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Error:(14, 28) error: cannot find symbol class BR
Error:(17, 40) error: package com.some.package.databinding does not exist
Error:(17, 51) error: cannot find symbol class DaggerSomeComponent
...
Может быть, это как-то связано с тем, что я тоже использую привязку данных!?
Я использую Dagger 2.5, Gradle плагин 2.1.2 и Android-APT 1.8.
Спасибо за вашу помощь!
1 ответ
Джава
javac
по умолчанию будет отображаться только до 100 ошибок. Вероятно, вы превысили этот предел из-за привязки данных, сообщающей об ошибке для каждого создаваемого им класса привязки.
Добавьте это в свои приложения build.gradle
:
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xmaxerrs" << "500"
}
}
Котлин
Вы можете включить ту же опцию Javac при использовании kapt
добавив следующее в ваш build.gradle.
kapt {
javacOptions {
option("-Xmaxerrs", 500)
}
}
В настоящее время это игнорируется, но будет исправлено в Kotlin v1.2.20
,