Я работаю над проектом Android, где использую:
com.android.tools.build:gradle 3.1.3
org.jetbrains.kotlin:kotlin-gradle-plugin 1.2.50
com.google.gms:google-services 3.2.0
compileSdkVersion 27
minSdkVersion 21
targetSdkVersion 27
com.google.dagger:dagger 2.12
com.google.dagger:dagger-android-support 2.12
com.android.support:appcompat-v7 27.1.1
Проект выполнен с использованием Kotlin и Databinding.
Если я обновляю compileSdkVersion и targetSdkVersion до 28, проект компилируется.
Но затем, когда я пытаюсь обновить до Androidx или AppCompat Library V7 28.0.0 и после исправления всех зависимостей, я обычно заканчиваюдо получения следующих ошибок:
symbol: class DataBindingComponent
location: class SomeProjectClassBinding
e: /Users/a/project/databinding/SomeProjectClassBinding.java:76:
error: cannot find symbol
@Nullable DataBindingComponent component) { ...
Я пробовал несколько вещей, в том числе:
Используя kapt "com.android.databinding: compiler", а также не используя его.По умолчанию у меня нет этой строки, так как я прочитал, она уже включена в Android Studio 3.2.
Хотя я использую Android Studio 2.3, я попробовал 3.3 Canary 13.
Я попытался обновить com.android.tools.build:gradle до 3.3.0-alpha13
Я попытался удалить org.gradle.jvmargs из gradle.properties.
Я попытался обновить ext.kotlin_version до 1.2.71
Я попытался запустить gradle из терминала, чтобы я мог получить деревья зависимостей, но яне смог найти ничего необычного.
Я пытался очистить и перестроить проект.
После обновления всех зависимостей проекта до последней версии я не получаю никаких предупреждений от AndroidStudio, но проект не компилируется из-за ошибки, упомянутой выше.
Итак, что я могу сделать, чтобы узнать больше, почему я получаю эту ошибку привязки данных? Есть ли опубликованный пример проекта, где он используется?:
Также мы знаем, еслипоследние версии этих программ совместимы друг с другом, например Android API 28 или Androidx с Dagger 2.17.