将支持库升级到v28或androidx

时间:2018-10-07 22:47:53

标签: 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

该项目是使用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,即2​​8

  • 最新版本的支持库或Jetpack

  • 最新版本的Dagger

  • 数据绑定

  • 科特琳

我们还知道它们的最新版本是否兼容,例如Android API 28或带有Dagger 2.17的Androidx。

0 个答案:

没有答案