Кинжал 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

Java

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.