[英]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.