Androidx和数据绑定

问题描述 投票:10回答:6

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

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

android android-support-library android-databinding androidx android-architecture
6个回答
5
投票

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。


4
投票

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

我刚看了这个release note,它说这个问题已经解决,但我没有看到效果。


2
投票

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

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


1
投票

在我的情况下,错误是因为迁移到AndroidX的工具不能很好地工作。仍然有一些布局文件使用了一些旧的支持库。修复这些文件后,一切顺利=)

要解决这些布局文件中使用的每个支持库,我在此链接后更改为右侧:https://developer.android.com/jetpack/androidx/migrate


1
投票

检查布局文件可能还有使用支持库而不是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">

1
投票

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

android {

    dataBinding {
        enabled = true
    }

}

2- gradle.properties(项目属性)

android.databinding.enableV2=true
© www.soinside.com 2019 - 2024. All rights reserved.