プロジェクトを AndroidX に正常に移行しました。 アプリは完全に実行されていますが、依存関係がサポートパッケージを使用しているため、コンパイル時エラーが発生しています。
PhotoView
は依存クラスであり、Android.support.v7.widget.AppCompatImageView
これは私のプロジェクトではもう利用できません。今はandroidx.appcompat.widget.AppCompatImageView
はい、 Android.enableJetifier
実行時にこの依存関係をAndroidX
に変換しますが、コンパイル時エラーを取り除きたい。
今のところ簡単な修正はありますか?
.idea
フォルダーを削除し、プロジェクトを再度同期することでこの問題を解決しました。
これはIDE Jetifierではなく、移行後に依存関係を再同期しません。Jetifierはうまく機能します。ビルド時にすべての依存関係サポートライブラリをandroidxに変換します。 @ this post 良い説明のため。
古いサポートライブラリを参照するライブラリに依存している場合、Android Studioは、依存関係変換を介してそのライブラリを参照するように更新します。依存関係変換はAndroid Gradle Plugin 3.2.0-alpha14は、バイトコードとJARおよびAAR依存関係(および推移的依存関係)のリソースを書き換えて、新しいandroidxパッケージのクラスとアーティファクトを参照します。また、スタンドアロンの翻訳ツールをJARとして提供します。
(./gradlew app:dependenciesを使用して)rxbindingの設計依存関係が新しいcom.google.Android.material依存関係に更新されることがわかります。 com.google.Android.material.snackbar.SnackbarをAndroid.support.design.widget.Snackbar自体を参照するライブラリ関数に渡すと、Android Studioはコンパイラエラーを表示しますが、実際にはコンパイルおよび実行されますASはまだこれらの変更を実際に処理できないと思います。
キャッシュに問題があるようです。.idea/libraries
を削除し、Gradle同期を実行するとエラーが消えます。
これに対する私の修正は、コンパイル時エラーのあるライブラリをAndroidXに変換し、プル要求をライブラリに送信することでした。