Androidx和数据绑定



我正在将Android p测试的依赖项迁移到androidx依赖项。由于一些不太清楚的原因,我的项目不再编译(不,为了避免一个明显的问题,我不会提供细节(。我发现(通过gradlew dependencies(数据绑定使用了"老派"依赖项android.arch.lifecycle:runtime:1.0.3而不是androidx.lifecycle:lifecycle-runtime:2.0.0-beta01。我想这可能是一个原因。

知道如何强制使用新的包名称/依赖项吗?

我面临类似的问题,Data Binding库使用支持库,有些类可能与AndroidX冲突。我现在必须移除DataBinding

我刚看了这个发布说明,上面说这个问题已经解决了,但我没有看到效果。

gradle.properties中启用AndroidX为我解决了这个问题:

android.useAndroidX=true
android.enableJetifier=true

请参阅https://developer.android.com/jetpack/androidx#using_androidx:

android.useAndroidX:当设置为true时,Android插件使用适当的AndroidX库,而不是支持库。旗帜是如果未指定,则默认为false
android.enableJetifier:何时设置为true,Android插件会自动迁移现有第三方库通过重写二进制文件来使用AndroidX。这个若并没有指定标志,则默认情况下该标志为false。

检查布局文件可能还有使用支持库而不是androidx的视图例如

<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

将其更改为

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

当我的互联网连接很弱时,我尝试过,所以我跳过了更新到Android Studio 3.2。那是我的错。升级后(解压花了将近一个小时,不知道为什么(,我还被要求将我的构建工具升级到com.android.tools.build:gradle:3.2.0-beta04(或者与你的Android Studio版本匹配的任何最新版本(我不会安装3.3.0-alpha03((,并将gradle包装器升级到4.6。

现在依赖关系消失了,我很高兴。

1-将此行添加到build.gradle 中

android {
dataBinding {
enabled = true
}
}

2-等级属性(项目属性(

android.databinding.enableV2=true

在我的案例中,错误是因为迁移到AndroidX的工具不能完美工作。仍然有一些布局文件使用一些旧的支持库。修复了这些文件后,一切都很顺利=(

为了修复这些布局文件中使用的每个支持库,我在该链接后更改为正确的支持库:https://developer.android.com/jetpack/androidx/migrate

最新更新