【Android】Consider using 'tasks.register' to avoid unnecessary configurationと出たときの対処法
スポンサーリンク

Gradleのバージョンを7に上げたらtask cleanでwarningの解決方法

GradleおよびAGP(Android Gradle Plugin)のバージョンアップ、build.gradleの'task clean'で出たwarningを解決する方法

ヒーラー
Gradleのバージョンを上げたら、従来の'task clean(type: Delete)'の記述でwarningが出るようになっていた

はじめに

AndroidStudioのバージョンアップに伴い、Gradleもバージョンアップ

久しぶりにアプリのアップデートが必要になったため、1年以上放置していたソースコードを触るとともに、AndroidStudioもバージョンアップしていたため、Jellyfish | 2023.3.1にアップデートしました。

その際、Gradleのバージョンも 6.5 から 8.6 へアップデートしました。
gradle-wrapper.propertiesは以下のとおりです。

+distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip

問題点

project/build.gradleの方の記述で、task cleanの記述が非推奨(deprecated)になっていました。

カーソルを合わせて、warningの詳細を見ると以下のとおりです。

warningの内容は、「Consider using 'tasks.register' to avoid unnecessary configuration」ということです。

'task'と記述していた部分を'tasks.register'に変更してくださいということのようです。

今回はGradleのバージョン6系から8系へのアップデートで発生しましたが、Gradeleバージョン7からdeprecatedになったようです。

対処方法

先程のwarningの詳細で、Use 'tasks.register' と提案が出ていたので、リンクをクリックしてその提案の修正方法に従えばOKです。

-task clean(type: Delete) {
+tasks.register('clean', Delete) {

修正後は以下のとおりです。

ただし、それだけではtaskの中の記述で新たなwarningが出てきてしまいました。

「'buildDir' is deprecated」ということで、buildDirの記述が非推奨になったということです。

こちらはGradleのバージョン8.2以降へのアップデートからdeprecatedになったようです。

公式ドキュメントより
https://docs.gradle.org/current/userguide/upgrading_version_8.html#changes_8.3


「Deprecated Project.buildDir is to be replaced by Project.layout.buildDirectory」ということなので、
「ootProject.buildDir」を「rootProject.layout.buildDirectory」に置き換えればOKです。

-delete rootProject.buildDir
+delete rootProject.layout.buildDirectory

この修正により、warningがなくなっていることが確認できます。

つまり、全体としての修正は以下のとおりです。

<Before>

task clean(type: Delete) {
    delete rootProject.buildDir
}

<After>

tasks.register('clean', Delete) {
    delete rootProject.layout.buildDirectory
}


スポンサーリンク

Twitterでフォローしよう

おすすめの記事