web-dev-qa-db-ja.com

Jetifierとは何ですか?

Jetifierとは何ですか?たとえば、androidx-packaged依存関係を使用して新しいプロジェクトを作成するには、この新しいプロジェクトでgradle.propertiesファイルに次の行を追加する必要があります。

Android.enableJetifier=true

それでは、「ジェット機を有効にする」とはどういう意味ですか?

73
Ksenia

今年の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 St​​udioにバンドルされているAndroid gradleプラグインを使用する代わりに、個々のライブラリを直接移行できます。

プロジェクトでAndroidXを使用するには、プロジェクトのtargetSdkVersionを28に設定し、gradle.propertiesファイルに次の2行を追加する必要があります。

Android.useAndroidX=true

Android.enableJetifier=true

これがあなたの質問に答えることを願っています。

編集

このリンク は、すべてのサポートライブラリコンポーネントとそのAndroidXカウンターパーツのマッピングを持っています。

また、AndroidXの詳細な説明については This ブログを参照してください。

41
silwar

AndroidXに精通していると仮定します。そうでない場合は、@ この投稿 を参照してください。

Jetifierは、すべての依存関係のsupport librariesAndroidXに自動的に変換します。trueに設定しない場合、プロジェクトは両方をサポートします( 28.0.0バージョンの後に非推奨になりました )および AndroidX パッケージ。これは冗長です。

例の場合

依存関係にPhotoView.Javaがある場合。サポートライブラリAppCompatImageViewを使用します。

import Android.support.v7.widget.AppCompatImageView;

このクラスは現在androidxパッケージに移動されているので、PhotoViewはandroidx AppCompatImageViewをどのように取得しますか?そして、アプリはまだデバイスで実行されます。

この実行を行ったのは誰ですか?

Jetifier。ビルド時に依存関係のすべてのサポートパッケージを変換します。

Jetifierは、プロジェクトのビルド中にAndroid.support.v7.widget.AppCompatImageViewandroidx.appcompat.widget.AppCompatImageViewに変換します。

結論

サポートライブラリ から AndroidXに移行する場合、Jetifierを有効にすることが重要です。

AndroidXの詳細については、 この投稿 をご覧ください。

情報

依存関係クラスの使用中にJetifierを有効にすると、コードにコンパイル時エラーが表示される場合があります。 .idea.gradleを削除してプロジェクトを再同期すると削除できます。

image2

image1

54
Khemraj

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
5
Abhishek Kumar

ジェティファイヤー

jetifier は、ビルド時にdependenciesAndroidXに自動的に移行する便利なツールです。それなしでは、移行する前にAndroidXバージョンを使用するために使用するすべての依存関係が必要になります。

注意すべき重要な制限があります:jetifierはパッケージ化されたアーティファクトでのみ機能します。ソースコードでは機能しません。自分で更新する必要があります。

androidXを有効にするには、gradle.propertiesファイルに2つのフラグを追加する必要があります。最初のフラグはAndroidプラグインにAndroidXの代わりにAppCompatパッケージを使用するように指示し、2番目のフラグはJetifierを有効にします:

Android.useAndroidX=true
Android.enableJetifier=true

thisthis を参照して、AndroidXの詳細を理解してください。

0
Basi