PC パソコン

Gradle「Could not create task」の原因と解決方法

Gradleでプロジェクトをビルドしたとき、「Could not create task」というエラーが表示されることがあります。

このエラーは、Gradleがビルドに必要なタスクを正常に作成できない場合に発生します。

原因としては、Gradleファイルの記述ミス、プラグインの設定不備、GradleやAndroid Gradle Pluginのバージョン不一致、JDKの互換性、存在しないプロパティやメソッドの参照、モジュール設定の問題などが考えられます。

この記事では、Gradleで「Could not create task」が表示されたときの主な原因と解決方法を順番に解説します。

「Could not create task」とは?

Gradleでは、コンパイル、テスト、リソース処理、APK生成などの処理をタスクとして管理しています。

例えば、Androidプロジェクトでは次のようなタスクが作成されます。

:app:compileDebugJavaWithJavac
:app:processDebugResources
:app:assembleDebug

Gradleがこれらのタスクを構成する途中で問題が発生すると、次のようなエラーが表示されることがあります。

Could not create task ':app:compileDebugJavaWithJavac'.

「Could not create task」は、別の具体的なエラーに伴って表示されることが多いため、その直後に表示されているメッセージを確認することが重要です。

原因1:build.gradleやbuild.gradle.ktsの記述に問題がある

Gradleファイルの記述ミスは、「Could not create task」が発生する代表的な原因の1つです。

例えば、波括弧の対応が崩れていたり、設定ブロックの位置が間違っていたりすると、Gradleがタスクを正常に構成できないことがあります。

android {
    compileSdk 35

dependencies {
implementation 'com.example:library:1.0.0'
}

このような場合は、エラーが表示された行だけでなく、その前後にあるGradle設定も確認してください。

原因2:存在しないプロパティを使用している

Gradleやプラグインのバージョンによっては、以前使用できたプロパティが削除されたり、名前が変更されたりすることがあります。

存在しないプロパティを参照すると、タスク作成時にエラーになる場合があります。

android {
    someOldProperty true
}

エラーの下に「Could not get unknown property」や「Could not set unknown property」などが表示されている場合は、使用しているプロパティが現在のGradleやプラグインで利用できるか確認してください。

原因3:存在しないメソッドを呼び出している

Gradleファイル内で、現在の環境では利用できないメソッドを呼び出している場合もタスクを作成できないことがあります。

android {
    someOldMethod()
}

この場合、エラーメッセージに「Could not find method」などが表示されることがあります。

Gradleやプラグインを更新した直後に発生した場合は、そのメソッドが現在のバージョンでも使用できるか確認してください。

原因4:GradleとAndroid Gradle Pluginのバージョンが合っていない

Android Studioのプロジェクトでは、GradleとAndroid Gradle Plugin(AGP)の組み合わせが重要です。

Android Gradle Pluginのバージョンによって、対応しているGradleのバージョンが異なります。

片方だけを更新すると、タスク生成時に互換性の問題が発生することがあります。

Gradleのバージョンは通常、gradle-wrapper.propertiesで確認できます。

distributionUrl=https\://services.gradle.org/distributions/gradle-8.x-bin.zip

Android Gradle Pluginを更新したあとにエラーが発生した場合は、対応するGradleバージョンも確認してください。

原因5:JDKのバージョンが対応していない

GradleやAndroid Gradle Pluginには、対応するJDKのバージョンがあります。

古いJDKを新しいGradleで使用した場合や、新しいJDKを古いGradleで使用した場合には、タスク作成時に問題が発生することがあります。

現在使用しているJavaのバージョンは、次のコマンドで確認できます。

java -version

Android Studioでは、Gradle JDKとして設定されているJavaのバージョンも確認してください。

原因6:プラグインの設定に問題がある

Gradleプラグインは、ビルドに必要なタスクを自動的に作成することがあります。

そのため、プラグインの読み込みに失敗していたり、設定が不完全だったりすると、タスクを正常に作成できません。

plugins {
    id 'com.android.application'
}

プラグインID、バージョン、pluginManagementの設定などを確認してください。

「Plugin was not found」や「Plugin with id not found」などのエラーが同時に表示されている場合は、先にプラグインの問題を確認する必要があります。

原因7:古いプラグインが新しいGradleに対応していない

長期間更新されていないGradleプラグインは、新しいGradleで正常に動作しない場合があります。

プラグイン内部で古いAPIや削除された機能を使用していると、タスク作成時にエラーになることがあります。

Gradleを更新した直後に「Could not create task」が発生した場合は、使用している外部プラグインの対応状況も確認してください。

原因8:build.gradleとbuild.gradle.ktsの記法を混同している

GradleにはGroovy DSLを使用するbuild.gradleと、Kotlin DSLを使用するbuild.gradle.ktsがあります。

記法が異なるため、別のDSL用のコードをそのまま使用するとエラーになることがあります。

Groovy DSLでは、例えば次のように記述します。

plugins {
    id 'com.android.application'
}

Kotlin DSLでは、次のように記述します。

plugins {
    id("com.android.application")
}

公式ドキュメントやGitHubから設定をコピーするときは、使用しているGradleファイルの種類と一致しているか確認してください。

原因9:タスクのカスタム設定に問題がある

プロジェクト内で独自のGradleタスクを作成している場合、その定義に問題があると「Could not create task」が発生することがあります。

tasks.register('customTask') {
    doLast {
        println 'Task executed'
    }
}

タスク名の重複、存在しないプロパティの参照、タスク構成時に実行できない処理などがないか確認してください。

原因10:同じ名前のタスクを重複して作成している

すでに存在するタスクと同じ名前で新しいタスクを作成しようとすると、設定上の問題が発生することがあります。

task customTask {
}

task customTask {
}

複数のGradleファイルやプラグインを使用している場合は、同じタスク名が重複していないか確認してください。

原因11:AndroidのnamespaceやapplicationId周辺に問題がある

Android Gradle Pluginのバージョンによっては、namespaceなどの設定が必要になる場合があります。

android {
    namespace 'com.example.app'
}

古いAndroidプロジェクトを新しいAndroid Gradle Pluginへ移行した場合、必要な設定が不足していることでタスク生成時にエラーになることがあります。

エラーの詳細にnamespaceやAndroid設定に関するメッセージが含まれていないか確認してください。

原因12:SDKやBuild Toolsの設定に問題がある

Androidプロジェクトでは、必要なAndroid SDKやBuild Toolsが利用できない場合にもタスクを正常に作成できないことがあります。

例えば、compileSdkで指定したSDKがインストールされていない場合です。

android {
    compileSdk 35
}

Android StudioのSDK Managerで、必要なSDK PlatformやSDK Toolsがインストールされているか確認してください。

原因13:local.propertiesやSDKパスに問題がある

Android SDKの場所を正しく取得できない場合、Android関連のタスクを作成できないことがあります。

local.propertiesには、次のようにSDKの場所が設定されている場合があります。

sdk.dir=/path/to/Android/sdk

SDKを移動した場合や、別のPCからプロジェクトをコピーした場合は、現在の環境と設定が一致しているか確認してください。

原因14:モジュール設定に問題がある

複数モジュールを使用しているプロジェクトでは、モジュールの登録や依存関係に問題があるとタスク作成に失敗することがあります。

settings.gradleでは、例えば次のようにモジュールを登録します。

include ':app', ':library'

存在しないモジュールを指定していたり、モジュール名を変更したあとに設定が残っていたりしないか確認してください。

原因15:Gradleのキャッシュに問題がある

Gradleは、ビルド情報や依存関係などをキャッシュとして保存します。

キャッシュの状態に問題がある場合、正しい設定でもタスク作成時にエラーが発生することがあります。

Gradle Syncを再実行しても改善しない場合は、依存関係の再確認によって改善することがあります。

./gradlew build --refresh-dependencies

ただし、「Could not create task」の具体的な原因が別に表示されている場合は、その原因を先に確認することが重要です。

まず確認したい解決手順

「Could not create task」が発生した場合は、次の順番で確認すると原因を絞り込みやすくなります。

  1. 「Could not create task」の直後に表示されているエラーを確認する
  2. build.gradleやbuild.gradle.ktsの記述を確認する
  3. 存在しないプロパティやメソッドを使用していないか確認する
  4. GradleとAndroid Gradle Pluginのバージョンを確認する
  5. JDKのバージョンを確認する
  6. Gradleプラグインの設定とバージョンを確認する
  7. Groovy DSLとKotlin DSLを混同していないか確認する
  8. カスタムタスクや重複したタスク名を確認する
  9. Android SDKやBuild Toolsを確認する
  10. モジュールやsettings.gradleの設定を確認する
  11. Gradle Syncを再実行する

最初の「Could not create task」だけで判断しない

「Could not create task」は、実際の原因を示すエラーではなく、その下にある別の問題によって表示される上位のメッセージである場合があります。

例えば、次のように表示されることがあります。

Could not create task ':app:compileDebugJavaWithJavac'.
> Could not get unknown property 'exampleProperty' for task ':app:compileDebugJavaWithJavac'.

この場合、具体的な原因は「Could not create task」ではなく、その下にある「Could not get unknown property」です。

エラーを確認するときは、「Could not create task」の次に表示されている「Caused by」「Could not get unknown property」「Could not find method」などのメッセージも必ず確認してください。

エラーに表示されているタスク名を確認する

「Could not create task」では、作成できなかったタスク名が表示されることがあります。

Could not create task ':app:compileDebugJavaWithJavac'.

この場合、:app:compileDebugJavaWithJavacというタスクの作成時に問題が発生しています。

タスク名から、Javaコンパイル、Kotlinコンパイル、リソース処理、テストなど、どの処理に関連した問題なのかを判断しやすくなります。

詳細なエラーを表示する

通常のビルド出力だけでは原因が分からない場合は、Gradleのオプションを使用して詳細なエラーを確認できます。

./gradlew build --stacktrace

さらに詳しいビルド情報を確認する場合は、次のようなオプションも使用できます。

./gradlew build --info

詳細なログを確認することで、どのGradle設定やプラグイン、タスク構成で処理が停止しているのかを特定しやすくなります。

「Could not create task」と「Could not determine the dependencies of task」の違い

「Could not create task」は、Gradleがタスクそのものを正常に作成できなかった場合に表示されることがあります。

一方、「Could not determine the dependencies of task」は、タスクは存在するものの、そのタスクを実行するために必要な依存関係をGradleが決定できない場合に表示されることがあります。

どちらもGradleの設定やプラグイン、依存関係などが原因になることがありますが、確認するべき具体的なエラーは、その直後に表示されているメッセージによって異なります。

まとめ

Gradleの「Could not create task」は、Gradleがビルドに必要なタスクを正常に作成できない場合に表示されるエラーです。

主な原因として、Gradleファイルの記述ミス、存在しないプロパティやメソッドの使用、GradleとAndroid Gradle Pluginのバージョン不一致、JDKの互換性、プラグイン設定、SDKやモジュール設定の問題などがあります。

このエラーは、別の具体的な問題に伴って表示されることが多いため、「Could not create task」だけを見て原因を判断しないことが重要です。

直後に表示されている「Could not get unknown property」「Could not find method」「Caused by」などのメッセージを確認し、そのうえでGradleファイル、プラグイン、Gradle・AGP・JDKのバージョン、SDK、モジュール設定などを順番に確認すると、原因を効率よく絞り込むことができます。