我正在使用的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 Canary13。
我尝试将com.android.tools.build:gradle升级到3.3.0-alpha13
我尝试从gradle.properties中删除org.gradle.jvmargs。
我尝试将ext.kotlin_version升级到1.2.71
我尝试从终端运行gradle,因此我可以获得依赖项树,但找不到任何异常。
我试图清理并重建项目。
将所有项目的依赖项升级到最新版本后,我没有收到来自Android Studio的任何警告,但由于上述错误,该项目无法编译。
那么,有什么我可以做的,以了解为什么我会遇到此数据绑定错误的更多信息吗?是否有一个示例项目在其使用的地方发布:
最新版本的Android API,即28
最新版本的支持库或Jetpack
最新版本的Dagger
数据绑定
科特琳
我们还知道它们的最新版本是否兼容,例如Android API 28或带有Dagger 2.17的Androidx。