Rob*_*nde 5 android android-appcompat dagger-2 android-databinding androidx
我正在使用一个 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
Run Code Online (Sandbox Code Playgroud)
该项目是使用 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) { ...
Run Code Online (Sandbox Code Playgroud)
我尝试了几件事,包括:
使用 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
我尝试从 gradle.properties 中删除 org.gradle.jvmargs。
我尝试将 ext.kotlin_version 升级到 1.2.71
我尝试从终端运行 gradle,所以我可以获得依赖树,但我找不到任何不寻常的东西。
我试图清理和重建项目。
将所有项目的依赖项升级到最新版本后,我没有收到来自 Android Studio 的任何警告,但由于上述错误,项目无法编译。
那么,有什么我可以做的事情来了解更多为什么我会收到此数据绑定错误?,是否有发布的示例项目正在使用:
最新版本的Android API,即28
最新版本的支持库或 Jetpack
最新版本的匕首
数据绑定
科特林
此外,我们是否知道这些的最新版本是否相互兼容,例如 Android API 28 或带有 Dagger 2.17 的 Androidx。