最近在使用Room时,碰到了一个奇怪的现象,程序莫名其妙的编译出错
且错误都是Databinding的,但最终排查发现时Room,然而日志中并没有相关信息
通过查阅发现时gradle日志默认打印太少,没把真正问题打印出来.
解决办法,在工程根目录的gradle文件中,添加以下代码:
1.如果使用的java,则使用:
//for java compile error
subprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xmaxerrs" << "500"
}
}
}
2.如果使用的kotlin,则使用:
//for kotlin compile error
subprojects {
afterEvaluate {
if (project.plugins.hasPlugin("kotlin-kapt")) {
kapt { javacOptions { option("-Xmaxerrs", 500) } }
}
}
}
行数限制可以根据自己实际情况修改
参考地址
https://stackoverflow.com/questions/46940606/debugging-databinding-errors-when-using-dagger-room-and-livedata
https://github.com/google/dagger/issues/306