14

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

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

4

6 回答 6

6

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

我刚刚阅读了这个发行说明,它说这个问题已经修复,但我没有看到效果。

于 2018-07-29T08:31:44.553 回答
6

启用 AndroidXgradle.properties为我解决了这个问题:

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。

于 2019-04-12T06:57:46.333 回答
4

例如,检查布局文件可能还有使用支持库而不是 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">
于 2019-02-18T10:28:46.340 回答
2

1-将此行添加到 build.gradle

android {

    dataBinding {
        enabled = true
    }

}

2- gradle.properties(项目属性)

android.databinding.enableV2=true
于 2019-06-20T07:13:22.607 回答
2

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

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

于 2018-07-29T19:00:56.897 回答
1

就我而言,错误是因为迁移到 AndroidX 的工具不能完美运行。仍然有一些布局文件使用了一些旧的支持库。修复这些文件后,一切顺利=)

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

于 2018-12-09T16:27:24.643 回答