将整个项目迁移到android x之后,我无法再对其进行编译了。
我收到100个以下错误:
e: M:\tmp\EverywhereLauncher\app\generated\data_binding_base_class_source_out\devWithoutTestWithAccessibilityDebug\dataBindingGenBaseClassesDevWithoutTestWithAccessibilityDebug\out\com\my\app\databinding\ActivityMainBinding.java:52: error: cannot find symbol
@Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent component) {
^
symbol: class DataBindingComponent
location: class ActivityMainBinding
我不知道从哪里继续。
我现在有两个问题。
我尝试过的事情:
我在我的项目build.gradle
中关注将打印错误的数量增加到10000:
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xmaxerrs" << "10000"
}
}
这始终有效,但是在这种情况下,它不会增加打印的错误
有什么想法我接下来可以做什么?
其他
我使用以下
android.enableJetifier=true
android.useAndroidX=true
我将Android Studio 3.2
与kotlin 1.2.61
和3.3.0-alpha01
gradle构建工具一起使用
3.3.0-alpha01
gradle构建工具是因为我还使用了Evernote com.evernote:android-state
,否则就不会这样做-问题在这里进行了解释:https://github.com/evernote/android-state/issues/56 答案 0 :(得分:5)
解决方案-增加记录的错误
过去,在broject的build.gradle
文件中,仅需关注以下内容:
gradle.projectsEvaluated {
tasks.withType(JavaCompile.class) {
options.compilerArgs << "-Xmaxerrs" << "10000"
}
}
使用kotlin,以下操作会有所帮助:
afterEvaluate {
if (project.plugins.hasPlugin("kotlin-kapt")) {
kapt {
javacOptions {
option("-Xmaxerrs", 10000)
}
}
}
}
真正的问题
在我的情况下,我将类从Java转换为kotlin,其中包含以下字段:
@Arg
Integer someValue;
转换器创建了以下内容:
@Arg
internal var someValue: Int? = null
问题:
internal
不适用于注释,因此失败,但是日志仅显示数据绑定错误...
示例项目build.gradle
https://gist.github.com/MFlisar/eca8ae6c2e6a619913ab05d503a4368f
答案 1 :(得分:1)
更新到androidx后,我也遇到了这个错误,尝试了一些堆栈溢出帖子中建议的所有内容,最后更新到了gradle插件3.3.0-beta03起作用了