スタンドアロンの Jetifier ツールは、サポート ライブラリに依存するライブラリを、代わりに同等の AndroidX パッケージに依存するように移行します。Android Studio にバンドルされた Android Gradle プラグインを使用する代わりに、このツールを使って個々のライブラリを直接移行できます。
Jetifier をインストールする
Jetifier をインストールするには、zip ファイルをダウンロードして解凍します。お使いのデバイスに Java バージョン 1.8 をインストールしておく必要があります。
使用方法
ライブラリを移行するには、現在のライブラリへのパスと、Jetifier で作成される出力ファイルへのパスを渡します。Jetifier は、ネストされたアーカイブを含む JAR、AAR、ZIP ファイルに対応しています。
./jetifier-standalone -i <source-library> -o <output-library>
オプション
オプション | 必須か? | 説明 |
---|---|---|
-i、--input <path> | はい | 入力となるライブラリへのパス(JAR、AAR、ZIP) |
-o、--output <path> | はい | 出力ファイルへのパス。ファイルがすでに存在する場合、Jetifier は上書きします。 |
-c、--config <path> | いいえ | カスタム構成ファイルへのパス(省略可)。 |
-l、--log <level> | いいえ | ロギングレベル。指定できる値は次のとおりです。
|
-r | いいえ | リバースモードで動作します(「逆の移行」)。 |
例
次の例では、ライブラリ libraryToProcess.aar
(現在のディレクトリ)に対して Jetifier ユーティリティを実行して、同じディレクトリの result.aar
に出力を書き込みます。
./jetifier-standalone -i libraryToProcess.aar -o result.aar
使用上の注意
Jetifier は android.support.*
パッケージを指す Java、XML、POM、ProGuard の参照を移行して、対応する androidx.*
パッケージを指すように変更します。
ProGuard の android.support.*
のワイルドカードは必ずしも androidx.*
パッケージに直接マッピングされるとは限らないので、Jetifier は可能な置き換えをすべて生成します。
android.support.*
パッケージに、サポート ライブラリのアーティファクトではないタイプがある場合でも、そのタイプのマッピングがあれば、Jetifier は移行を行います。ただし、すべてのカスタムタイプをカバーするような汎用的なマッピング ルールがあるとは限らないので、このような移行は保証されません。
高度な使用方法
Jetifier ユーティリティには以下のような高度な使い方があります。
リバースモード
-r
フラグを渡すと、Jetifier はリバースモードで実行されます。このモードでは通常とは逆に、AndroidX API を同等のサポート ライブラリに変換します。リバースモードが役に立つのは、たとえば AndroidX API を使用するライブラリを開発しても、サポート ライブラリを使用するバージョンも配布する必要がある場合です。
例
次の例では、このユーティリティをライブラリ myAndroidXLib.aar
(現在のディレクトリ)に対してリバースモードで実行して、同じディレクトリの supportLibVersion.aar
に出力を書き込みます。
./jetifier-standalone -r -i myAndroidXLib.aar -o supportLibVersion.aar
カスタム構成ファイル
Jetifier ツールは構成ファイルを使用して、サポート ライブラリのクラスを対応する AndroidX のクラスにマッピングします。このマッピングを変更する必要があれば、そのためのカスタム構成ファイルを作成できます。実際にはサポート ライブラリに含まれない新しいクラスをマッピングに追加することもできます。たとえば、独自のクラスの一つを、AndroidX を使用して作成した後継クラスに置き換えるようにマッピングを変更できます。
カスタム構成ファイルを使用するには、ファイル default.generated.config
を Jetifier ユーティリティの jetifier-core-*.jar
ファイルから解凍し、保存します。構成ファイルをコピーして、必要に応じて編集し、-c
フラグを指定してユーティリティに渡します。次に例を示します。
./jetifier-standalone -i libraryToProcess.aar -o result.aar -c myCustomMapping.config