mobの雑記

新米エンジニアがたまーにつぶやきます。

Android Gradle Plugin 8のNew settings pluginについて

はじめに

AGP8で追加されたNew settings plugin(com.android.settings)について、早速試してみた感想と現状リファレンスの内容だと導入できないので、メモ書きとして残します。

導入方法

  1. プラグインを追加する

    リファレンスのやり方通り、apply plugin 'com.android.settings'を追加します。

    ※KTSファイルに変更している場合はそのままだと現状プラグインが対応していないため、導入できません。Groovyファイルに変更しましょう。

  2. pluginManagementブロックを追加する。

    現状このままだと、com.android.settingsプラグインの依存関係の解決ができません。そのため、解決方法をGradleに示す必要があります。

    ※pluginManagementブロックはsettings.gradleファイルの先頭に追加しましょう。

     pluginManagement {
         repositories {
             google()
             mavenCentral()
             gradlePluginPortal()
         }
         resolutionStrategy {
             eachPlugin {
                 if (requested.id.id == "com.android.settings") {
                     useModule("com.android.settings:com.android.settings.gradle.plugin:8.0.0")
                 }
             }
         }
     }
    
  3. androidブロックを追加する。

    ようやくandroidブロックを追加できます。includeやrootProject.nameの上にandroidブロックを追加しましょう。

    現状compileSdkやminSdkしか指定できないみたいです。defaultConfigやcompileOptionsは対応していないみたいです。

     pluginManagement {
         repositories {
             google()
             mavenCentral()
             gradlePluginPortal()
         }
         resolutionStrategy {
             eachPlugin {
                 if (requested.id.id == "com.android.settings") {
                     useModule("com.android.settings:com.android.settings.gradle.plugin:8.0.0")
                 }
             }
         }
     }
    
     apply plugin 'com.android.settings'
    
     android {
         compileSdk = 33
         ...
     }
    

試してみた感想

まだ未完成感が非常に強いです。現状extで設定している奴らを一掃できると大いに期待したのですが、まだ無理そうでした。。。

もう少し時間が経ったら再度チャレンジしてみようかな。。。?

日本語の情報がないので、もう試した方いらっしゃったらコメントで教えていただけると助かります。