回答:
今年のGoogle I / O(18)、Googleは、開発者の生活を楽にするライブラリのセット/コレクションであるJetpackを発表しました。
Jetpackには、以前に導入されたAndroidアーキテクチャコンポーネント(ViewModel、Room、Paging、LiveDataなど)と、WorkManager、Navigationなどの新しく導入されたアーキテクチャコンポーネントが含まれています。このJetpackの他に、AndroidX、AndroidKTXなどの他のライブラリセットもあります。
AndroidXは、サポート、データバインディング、デザインなどのAndroidサポートライブラリの新しいパッケージ構造です。
たとえば、今では病棟の開発者はandroidx.databindingを使用します。android.databindingの代わりに。プロジェクトにライブラリをインポートしている間
これにより、GoogleはライブラリパッケージにSemVerまたはセマンティックバージョニングを追加できます。開発者にとって、これはすべてのサポートライブラリに同じサポートライブラリバージョンを使用する必要がないことを意味します。AndroidXライブラリは独自のバージョン管理を維持すると言って、すべてのサポート以上。
開発者にとってのもう1つの利点は、プロジェクト内のすべてのサポートライブラリで同じバージョンを維持する必要がないことです。
Jetifierについては、ビルド時に依存関係のすべてのサポートパッケージを変換します。Jetifierの公式ドキュメントに従って
Jetifierツールは、サポートライブラリに依存するライブラリを移行して、代わりに同等のAndroidXパッケージに依存します。このツールを使用すると、Android StudioにバンドルされているAndroid Gradleプラグインを使用する代わりに、個々のライブラリを直接移行できます。
プロジェクトでAndroidXを使用するには、プロジェクトのtargetSdkVersionを28に設定し、gradle.propertiesファイルに次の2行を追加する必要があります。
android.useAndroidX=true
android.enableJetifier=true
これがあなたの質問に答えることを願っています。
編集する
このリンクには、すべてのサポートライブラリコンポーネントとそのAndroidXカウンターパートのマッピングが含まれています。
また、AndroidXの詳細な説明については、このブログを参照してください。
に慣れていると仮定します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は、サードパーティのライブラリをAndroidXプロジェクトと互換性のあるものにするのに役立ちます。
Androidプロジェクトでサードパーティのライブラリを使用していない場合は、Jetifierを使用する必要はありません。AndroidXに移行する場合に備えて、Jetifierはプロジェクトと互換性のある「サードパーティのライブラリを作成する」ためにのみ役立つためです。したがって、プロジェクトでJetifierを使用するには、gradle.propertiesに以下のコードを記述します。
android.enableJetifier=true
android.useAndroidX=true
AndroidXに移行せず、Androidライブラリを使用する以前の方法(例:com.android.support)を使用している場合、これらのサードパーティライブラリは以前の方法と互換性があるため、互換性を持たせる必要はありません。 Androidライブラリを使用する。その場合、Jetifierを使用する必要はありません。そのため、上記の行を記述する必要はありません。または、以下のように記述するだけで、後で値を変更してandroidxに移動できます。
android.enableJetifier=false
android.useAndroidX=false
Jetifier
jetifierは自動的に移行する便利なツールであるdependencies
としAndroidX
ビルド時に。それがなければ、移行する前に使用するすべての依存関係がAndroidXバージョンを持っている必要があり、それはおそらくしばらくは起こりません。
注意すべき重要な制限があります:jetifierはパッケージ化されたアーティファクトでのみ機能します。自分で更新することが予想されるソースコードでは機能しません。
AndroidXを有効にするには、gradle.properties
ファイルに2つのフラグを追加する必要があります。最初のフラグはAndroidプラグインにのAndroidX
代わりにパッケージを使用するように指示しAppCompat
、2番目のフラグはJetifier
:を有効にします
android.useAndroidX=true
android.enableJetifier=true
次の2行を追加しますandroid.useAndroidX = true
android.enableJetifier = true
buid.gradleでそれは私のために働いた
implementation "com.commonsware.cwac:document:0.3.0"
しますdependencies
。そのライブラリバージョンは、に推移的に依存していcom.android.support:support-annotations:27.0.2
ます。ただし、androidx.annotation:annotation
他のAndroidX依存関係の使用の一部として使用する必要があります。Jetifierはどういうわけかcom.commonsware.cwac:document
使用するために更新しますandroidx.annotation:annotation
。