Android Gradle プラグインの DSL / API の移行スケジュール

Android Gradle プラグイン(AGP)は、Android アプリでサポートされているビルドシステムであり、さまざまなタイプのソースをコンパイルして、実際の Android デバイスまたはエミュレータ上で実行可能なアプリにまとめてリンクできます。

以下のセクションでは、AGP の DSL と API の予定されている進化について説明します。安定版リリースで新しい API が導入されると、古い API は非推奨としてマークされます。非推奨の API は、次の安定版リリースでは利用できなくなります。AGP の各メジャー リリースで予定されている変更点に関する情報は、以下のとおりです。

AGP API の非推奨や削除の詳細なログについては、AGP API の更新をご覧ください。

AGP 9.0(2024 年半ば)

新しい Variant API が安定版となり、古い API は非推奨となります

  • 4.1 と 4.2 では準備中であった Variant API が安定します。
  • これらのインターフェースはすべて gradle-api アーティファクトにあります。
  • 古い Variant API で使用されていた以前のインターフェースとクラスは、非推奨になります。

新しい DSL インターフェースが安定版となり、古い DSL インターフェースは非推奨となります

  • 4.1、4.2、7.0 では準備中であった DSL インターフェースが安定します。
  • これらのインターフェースはすべて gradle-api アーティファクトにあります。
  • DSL で使用していた以前のインターフェースとクラスは、非推奨になります。

非公開の内部 AGP クラスには引き続きアクセス可能

他のアーティファクトにある AGP の非公開の内部クラスには、ビルドファイルのコンパイル中に引き続きアクセスできますが、常に破壊的に変更される可能性があるため、使用することはおすすめしません

AGP 10.0(2025)

古い API が削除されます

  • DSL と古い Variant API で使用されていた以前のインターフェースとクラスはすべて削除されます。
  • gradle-api アーティファクトは、DSL と Variant API のインターフェースとクラスにアクセスするために必要な唯一のアーティファクトであり、プラグインの開発時に使用する必要があります。
  • Gradle メタデータを使用すると、コンパイルとランタイムに異なる依存関係グラフが提供されるため、ビルドファイルのコンパイル中に使用できるアーティファクトは gradle-api のみになります。

(未定)非公開の内部 AGP クラスへのアクセス権が削除されます

gradle アーティファクトへの依存関係によって、すべての内部クラスが非表示になり、gradle-api アーティファクトで使用できるインターフェースとクラスにのみコンパイル アクセス権が付与されます。これは、プラグインとビルドファイルのコンパイルの両方に影響を与えます。

内部クラスにアクセスするために、手動で依存関係を追加することはできません。