我正在将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库,而不是支持库。旗帜是如果未指定,则默认为falseandroid.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