Ошибки привязки данных после перехода на AndroidX

Я получаю много ошибок с ошибками привязки данных после перехода на AndroidX (Refactor> Migrate to 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'
} 

person qbait    schedule 03.07.2018    source источник
comment
привязка данных - это проклятие в Android.   -  person Sunny    schedule 06.07.2018
comment
Я люблю саму привязку данных Android, код такой чистый, но инструменты усложняют работу :(   -  person qbait    schedule 06.07.2018
comment
Вы пытались восстановить и / или сделать недействительным кэш и перезапустить? Доступны более новые версии, например: androidx.appcompat: appcompat: 1.0.0-rc02, вы должны обновить их. Можете ли вы показать весь класс, в котором возникает указанная вами ошибка?   -  person 476rick    schedule 12.09.2018
comment
@qbait вчера обнаружил, что существует androidx компилятор привязки данных (несмотря на то, что он все еще экспериментальный): stackoverflow.com/a/52489036/ 549372   -  person Martin Zeitler    schedule 26.09.2018


Ответы (2)


Обновление до последней версии Android Studio и повторный импорт проекта устранили мою проблему.

person Sahil Gera    schedule 02.08.2018

Чтобы решить эту проблему, мне пришлось обновить все имена классов в файлах layout.

От:

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

to:

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

После этого ошибки привязки данных исчезли.

Я запустил инструмент миграции, но он не исправил имена классов в макете xmls, к сожалению!

person Soulblighter    schedule 26.09.2018