迁移到AndroidX后出现数据绑定错误

时间:2018-07-03 16:33:12

标签: android android-databinding androidx

在迁移到AndroidX后,我遇到很多数据绑定错误(重构>迁移到AndroidX)。

error: cannot find symbol
      @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent component) {
                                                                ^
  symbol:   class DataBindingComponent
  location: class ActivityInfoBinding   

我正在使用Android Studio 3.2 Beta 2

我的依赖项:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.0.0-beta01'
    implementation 'androidx.cardview:cardview:1.0.0-beta01'
    implementation 'com.google.android.material:material:1.0.0-beta01'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha1'
    implementation "com.squareup.retrofit2:retrofit:$versions.retrofit"
    implementation "com.squareup.retrofit2:converter-gson:$versions.retrofit"
    implementation 'androidx.room:room-runtime:2.0.0-beta01'
    kapt 'androidx.room:room-compiler:2.0.0-beta01'
    implementation "androidx.core:core-ktx:$versions.ktx"
    implementation 'androidx.lifecycle:lifecycle-runtime:2.0.0-beta01'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-beta01'
    kapt 'androidx.lifecycle:lifecycle-compiler:2.0.0-beta01'
    implementation "me.tatarka.bindingcollectionadapter2:bindingcollectionadapter:$versions.binding_collection_adapter"
    implementation "me.tatarka.bindingcollectionadapter2:bindingcollectionadapter-recyclerview:$versions.binding_collection_adapter"
    implementation "com.jakewharton.threetenabp:threetenabp:$versions.threetenabp"
    implementation "com.google.dagger:dagger:$versions.dagger"
    kapt "com.google.dagger:dagger-compiler:$versions.dagger"
    kapt "com.google.dagger:dagger-android-processor:$versions.dagger"
    implementation "com.google.dagger:dagger-android-support:$versions.dagger"
    implementation "com.airbnb.android:lottie:$versions.lottie"
    implementation "com.github.bumptech.glide:glide:$versions.glide"
    implementation "com.jakewharton.timber:timber:$versions.timber"
    implementation "com.crashlytics.sdk.android:crashlytics:$versions.crashlytics"
    implementation "com.google.firebase:firebase-core:$versions.firebase_core"

    testImplementation "junit:junit:$versions.junit"
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'
} 

2 个答案:

答案 0 :(得分:1)

更新到最新的Android Studio并重新导入该项目解决了我的问题。

答案 1 :(得分:0)

要解决此问题,我必须更新布局文件上的所有类名。

发件人:

<android.support.design.widget.CoordinatorLayout
<android.support.v7.widget.RecyclerView
...

收件人:

<androidx.core.widget.NestedScrollView
<androidx.coordinatorlayout.widget.CoordinatorLayout
...

之后,数据绑定错误消失了。

我运行了迁移工具,但不幸的是,它没有在布局xml上固定类名!