Kotlin,ROOM,Databinding编译异常

最近在使用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

你可能感兴趣的:(Kotlin,ROOM,Databinding编译异常)