web-dev-qa-db-ja.com

Androidxとデータバインディング

Android Pテストの依存関係をandroidxの依存関係に移行しています。あまり明確ではない理由のために、プロジェクトはもうコンパイルされません(回避するために詳細を提供しません) (gradlew dependenciesを介して)データバインディングがAndroid.Arch.lifecycle:runtime:1.0.3の代わりに "oldschool"依存関係androidx.lifecycle:lifecycle-runtime:2.0.0-beta01を使用していることがわかりました。

新しいパッケージ名/依存関係を強制的に使用する方法はありますか?

11
rekire

私は弱いインターネット接続があった間にそれを試したので、Android Studio 3.2にアップデートするのをスキップしました。それは私のせいでした。ビルドツールをcom.Android.tools.build:gradle:3.2.0-beta04(またはAndroid Studioバージョン(3.3.0-alpha03をインストールしません)に一致する最新バージョン)にアップグレードすることも要求されました。 4.6へのgradleラッパー。

これで依存関係はなくなり、私は満足しています。

2
rekire

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を使用します。指定されていません。

6
Philipp Hofmann

私は同様の問題に直面しています、Data Bindingライブラリはサポートライブラリを使用します。一部のクラスはAndroidXと競合する場合があります。今のところDataBindingを削除する必要があります。

私はこれを読みました リリースノート 、この問題は修正されたと言っていましたが、その効果は見られませんでした。

4
Yu Lee

レイアウトファイルを確認します。たとえば、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">
2
MJahongir

1-この行をbuild.gradleに追加します

Android {

    dataBinding {
        enabled = true
    }

}

2- gradle.properties(プロジェクトプロパティ)

Android.databinding.enableV2=true
2
Ahmad Aghazadeh

私の場合、エラーはAndroidXに移行するツールが完全に機能しないためでした。古いサポートライブラリを使用したレイアウトファイルがまだいくつかありました。これらのファイルを修正した後、すべてがうまくいきました=)

これらのレイアウトファイルで使用されていたすべてのサポートライブラリを修正するために、このリンクに従って正しいものに変更しました。 https://developer.Android.com/jetpack/androidx/migrate

1
Gabriel Guedes