当前位置 : 主页 > 手机开发 > android >

在AndroidX迁移后找不到符号DataBindingComponent

来源:互联网 收集:自由互联 发布时间:2021-06-11
将我的整个项目迁移到 android x后,我再也无法进行编译了. 我得到以下100个错误: e: M:\tmp\EverywhereLauncher\app\generated\data_binding_base_class_source_out\devWithoutTestWithAccessibilityDebug\dataBindingGenBase
将我的整个项目迁移到 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

我不知道从哪里继续.

我现在有两个问题.

>我只看到100个错误
>所有错误都是一样的,可能隐藏了真正的错误

我尝试了什么:

>我在我的项目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

解决方案 – 增加记录的错误

在过去,在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

问题:

内部不能使用注释,因此失败,但日志只显示数据绑定错误…

示例项目build.gradle

https://gist.github.com/MFlisar/eca8ae6c2e6a619913ab05d503a4368f

网友评论