簡體   English   中英

Androidx和數據綁定

[英]Androidx and databinding

我正在將Android P測試的依賴項遷移到androidx依賴項。 由於一些不太清楚的原因,我的項目不再編譯(並且我不會提供細節以避免明顯的問題)。 我發現(通過gradlew dependencies )數據綁定使用“oldschool”依賴android.arch.lifecycle:runtime:1.0.3而不是androidx.lifecycle:lifecycle-runtime:2.0.0-beta01 我想這可能是一個原因。

知道如何強制使用新的包名/依賴項嗎?

啟用AndroidX在gradle.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。

我面臨類似的問題, Data Binding庫使用支持庫,有些類可能與AndroidX沖突。 我現在必須刪除DataBinding

我剛讀了這篇發行說明 ,它說這個問題已經解決,但我沒有看到效果。

當我的互聯網連接很弱時,我試過了,所以我跳過更新到Android Studio 3.2。 那是我的錯。 隨着升級(unziping花了將近一個小時不知道為什么)我還被要求將我的構建工具升級到com.android.tools.build:gradle:3.2.0-beta04 (或者是適合Android的最新版本) Studio版本(我不會安裝3.3.0-alpha03 )並將gradle包裝器升級到4.6。

現在依賴關系消失了,我很高興。

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

在我的情況下,錯誤是因為遷移到AndroidX的工具不能很好地工作。 仍然有一些布局文件使用了一些舊的支持庫。 修復這些文件后,一切順利=)

要修復這些布局文件中使用的每個支持庫,我在此鏈接后面改為右邊的一個: https//developer.android.com/jetpack/androidx/migrate

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

android {

    dataBinding {
        enabled = true
    }

}

2- gradle.properties(項目屬性)

android.databinding.enableV2=true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM