Jetifier

スタンドアロンの 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> いいえ ロギングレベル。指定できる値は次のとおりです。
  • error(エラー)
  • warning(警告)
  • info(情報)
  • verbose(詳細)
指定しない場合、デフォルトは「warning」です。
-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 にマッピングします。このマッピングを変更する必要があれば、そのためのカスタム設定ファイルを作成することができます。実際にはサポート ライブラリに含まれない新しいクラスをマッピングに追加することもできます。たとえば、独自のクラスの 1 つを、AndroidX を使用して作成した後継クラスに置き換えるようにマッピングを変更できます。

カスタム設定ファイルを使用するには、ファイル default.generated.config を Jetifier ユーティリティの jetifier-core-*.jar ファイルから解凍し、保存します。設定ファイルをコピーして、必要に応じて編集し、-c フラグを指定してユーティリティに渡します。次に例を示します。

    ./jetifier-standalone -i libraryToProcess.aar -o result.aar -c myCustomMapping.config