Jetifierとは何ですか?たとえば、androidx-packaged依存関係を使用して新しいプロジェクトを作成するには、この新しいプロジェクトでgradle.propertiesファイルに次の行を追加する必要があります。
Android.enableJetifier=true
それでは、「ジェット機を有効にする」とはどういう意味ですか?
今年のGoogle I/O(18)で、Googleは開発者の生活を楽にするライブラリのセット/コレクションであるJetpackを発表しました。
Jetpackには、以前に導入されたAndroidアーキテクチャコンポーネント(ViewModel、Room、Paging、LiveDataなど)と、WorkManager、Navigationなどの新しく導入されたアーキテクチャコンポーネントが含まれています。このJetpackの他に、AndroidX、AndroidKTXなどの他のライブラリセットもあります。
AndroidXは、サポート、データバインディング、デザインなどのAndroidサポートライブラリの新しいパッケージ構造です。
例えば開発者は、プロジェクトでライブラリをインポートするときに、Android.databinding。の代わりにandroidx.databinding。を使用します
これにより、GoogleはライブラリパッケージにSemVerまたはSemantic Versioningを追加できます。開発者にとって、これはすべてのサポートライブラリに同じサポートライブラリバージョンを使用する必要がないことを意味します。 AndroidXライブラリと言うよりも優れたサポートはすべて、独自のバージョン管理を維持します。
開発者にとってのもう1つの利点は、プロジェクトのすべてのサポートライブラリに対して同じバージョンを維持する必要がないことです。
Jetifierについては、ビルド時に依存関係のすべてのサポートパッケージを変換します。 Jetifierの公式ドキュメントに従って
Jetifierツールは、サポートライブラリに依存するライブラリを移行して、代わりに同等のAndroidXパッケージに依存します。このツールを使用すると、Android StudioにバンドルされているAndroid gradleプラグインを使用する代わりに、個々のライブラリを直接移行できます。
プロジェクトでAndroidXを使用するには、プロジェクトのtargetSdkVersionを28に設定し、gradle.propertiesファイルに次の2行を追加する必要があります。
Android.useAndroidX=true
Android.enableJetifier=true
これがあなたの質問に答えることを願っています。
編集
このリンク は、すべてのサポートライブラリコンポーネントとそのAndroidXカウンターパーツのマッピングを持っています。
また、AndroidXの詳細な説明については This ブログを参照してください。
AndroidX
に精通していると仮定します。そうでない場合は、@ この投稿 を参照してください。
Jetifier
は、すべての依存関係のsupport libraries
をAndroidX
に自動的に変換します。true
に設定しない場合、プロジェクトは両方をサポートします( 28.0.0バージョンの後に非推奨になりました )および AndroidX パッケージ。これは冗長です。
依存関係にPhotoView.Java
がある場合。サポートライブラリAppCompatImageView
を使用します。
import Android.support.v7.widget.AppCompatImageView;
このクラスは現在androidx
パッケージに移動されているので、PhotoView
はandroidx AppCompatImageView
をどのように取得しますか?そして、アプリはまだデバイスで実行されます。
この実行を行ったのは誰ですか?
Jetifier。ビルド時に依存関係のすべてのサポートパッケージを変換します。
Jetifierは、プロジェクトのビルド中にAndroid.support.v7.widget.AppCompatImageView
をandroidx.appcompat.widget.AppCompatImageView
に変換します。
サポートライブラリ から AndroidXに移行する場合、Jetifierを有効にすることが重要です。
AndroidXの詳細については、 この投稿 をご覧ください。
依存関係クラスの使用中にJetifierを有効にすると、コードにコンパイル時エラーが表示される場合があります。 .idea
、.gradle
を削除してプロジェクトを再同期すると削除できます。
Jetifierは、AndroidプロジェクトをAndroidXに移行するのに役立ちます。
Jetifierは、作成に役立ちますサードパーティライブラリcompatible AndroidXプロジェクトと。
Androidプロジェクトでサードパーティライブラリを使用していない場合は、Jetifierを使用する必要はありません。Jetifierは、プロジェクトに対応する「サードパーティライブラリを作成する」場合にのみ役立つからです。 AndroidXへの移行。したがって、プロジェクトでJetifierを使用するには、以下のコードをgradle.propertiesで記述します。
Android.enableJetifier=true
Android.useAndroidX=true
AndroidXに移行せず、Androidライブラリを使用する以前の方法を使用していない場合(例:com.Android.support)、これらのサードパーティライブラリは互換性を持たせる必要はありません。これらのサードパーティライブラリは、以前のAndroidライブラリの使用方法と既に互換性があるためです。その場合、Jetifierを使用する必要はありません。したがって、上記の行を記述する必要はありません。または、以下のように記述するだけで、将来的にandroidxに移行することができます。
Android.enableJetifier=false
Android.useAndroidX=false
ジェティファイヤー
jetifier は、ビルド時にdependencies
をAndroidX
に自動的に移行する便利なツールです。それなしでは、移行する前にAndroidXバージョンを使用するために使用するすべての依存関係が必要になります。
注意すべき重要な制限があります:jetifierはパッケージ化されたアーティファクトでのみ機能します。ソースコードでは機能しません。自分で更新する必要があります。
androidXを有効にするには、gradle.properties
ファイルに2つのフラグを追加する必要があります。最初のフラグはAndroidプラグインにAndroidX
の代わりにAppCompat
パッケージを使用するように指示し、2番目のフラグはJetifier
を有効にします:
Android.useAndroidX=true
Android.enableJetifier=true