Android Pテストの依存関係をandroidxの依存関係に移行しています。あまり明確ではない理由のために、プロジェクトはもうコンパイルされません(回避するために詳細を提供しません) (gradlew dependencies
を介して)データバインディングがAndroid.Arch.lifecycle:runtime:1.0.3
の代わりに "oldschool"依存関係androidx.lifecycle:lifecycle-runtime:2.0.0-beta01
を使用していることがわかりました。
新しいパッケージ名/依存関係を強制的に使用する方法はありますか?
私は弱いインターネット接続があった間にそれを試したので、Android Studio 3.2にアップデートするのをスキップしました。それは私のせいでした。ビルドツールをcom.Android.tools.build:gradle:3.2.0-beta04
(またはAndroid Studioバージョン(3.3.0-alpha03
をインストールしません)に一致する最新バージョン)にアップグレードすることも要求されました。 4.6へのgradleラッパー。
これで依存関係はなくなり、私は満足しています。
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を使用します。指定されていません。
私は同様の問題に直面しています、Data Binding
ライブラリはサポートライブラリを使用します。一部のクラスはAndroidX
と競合する場合があります。今のところDataBinding
を削除する必要があります。
私はこれを読みました リリースノート 、この問題は修正されたと言っていましたが、その効果は見られませんでした。
レイアウトファイルを確認します。たとえば、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">
1-この行をbuild.gradleに追加します
Android {
dataBinding {
enabled = true
}
}
2- gradle.properties(プロジェクトプロパティ)
Android.databinding.enableV2=true
私の場合、エラーはAndroidXに移行するツールが完全に機能しないためでした。古いサポートライブラリを使用したレイアウトファイルがまだいくつかありました。これらのファイルを修正した後、すべてがうまくいきました=)
これらのレイアウトファイルで使用されていたすべてのサポートライブラリを修正するために、このリンクに従って正しいものに変更しました。 https://developer.Android.com/jetpack/androidx/migrate