[Android] [Gradle] Android Studioで “Configuration with name default not found” エラーが出た時の対処法

Android Studio や IntelliJ IDEA でプロジェクトを開こうとした時に、
“Configuration with name default not found” というエラーが出ることがあります。

resolve error
Configuration with name default not found
Consult IDE log for more details(help show log)

どうすればいいか

困ったときのGoogle先生頼みでぐぐるのもいいんですが、これだけでは原因が色々ありすぎてなかなか正解にたどり着けないので、ダイアログで書かれている通り help メニューから show log を開いて、フォルダ内の idea.log を開いてみると解決の助けになります。

Mac OS X や Linux は ~/Library/Logs/AndroidStudio/idea.log あたりを直接開いてもOKです。

ログファイルなのでめちゃくちゃ長くて読みづらいのですが、該当のエラーを知りたいだけなので
エラーメッセージ通りConfiguration with name ‘default’ not found.で検索してみると、何件かのうち以下のような行が引っかかると思います。

(省略)
Caused by: org.gradle.api.UnknownProjectException: Cannot evaluate module volley : Configuration with name 'd
efault' not found.
        at com.android.build.gradle.BasePlugin$_ensureConfigured_closure189.doCall(BasePlugin.groovy:3345)
        at com.android.build.gradle.BasePlugin.ensureConfigured(BasePlugin.groovy:3339)
        at com.android.build.gradle.BasePlugin.resolveDependencyForConfig(BasePlugin.groovy:3255)
        at com.android.build.gradle.BasePlugin.this$2$resolveDependencyForConfig(BasePlugin.groovy)
        at com.android.build.gradle.BasePlugin$this$2$resolveDependencyForConfig$1.callCurrent(Unknown Source)
        at com.android.build.gradle.BasePlugin.resolveDependencies(BasePlugin.groovy:3174)
        at com.android.build.gradle.internal.VariantManager.createVariantData(VariantManager.java:464)
        at com.android.build.gradle.internal.VariantManager.createVariantDataForProductFlavors(VariantManager.java:550)
        at com.android.build.gradle.internal.VariantManager.populateVariantDataList(VariantManager.java:326)
        at com.android.build.gradle.internal.VariantManager.createAndroidTasks(VariantManager.java:212)
        at com.android.build.gradle.internal.VariantManager$createAndroidTasks.call(Unknown Source)
        at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.groovy:463)
        at com.android.build.gradle.BasePlugin$_createTasks_closure9.doCall(BasePlugin.groovy:408)
        at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:40)
        at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:25)
        at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:83)
        at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:31)
        at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
        at com.sun.proxy.$Proxy13.afterEvaluate(Unknown Source)
        at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:79)
        ... 39 more
Caused by: org.gradle.api.artifacts.UnknownConfigurationException: Configuration with name 'default' not found.
        at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.createNotFoundException(DefaultConfigurationContainer.java:79)
        at org.gradle.api.internal.DefaultNamedDomainObjectCollection.getByName(DefaultNamedDomainObjectCollection.java:192)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.getByName(DefaultConfigurationContainer.java:69)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.getByName(DefaultConfigurationContainer.java:33)
        at org.gradle.api.internal.artifacts.dependencies.DefaultProjectDependency.getProjectConfiguration(DefaultProjectDependency.java:69)
        at org.gradle.api.internal.artifacts.dependencies.DefaultProjectDependency_Decorated.getProjectConfiguration(Unknown Source)
        at org.gradle.api.internal.BeanDynamicObject$MetaClassAdapter.getProperty(BeanDynamicObject.java:153)
        at org.gradle.api.internal.BeanDynamicObject.getProperty(BeanDynamicObject.java:107)
        at org.gradle.api.internal.CompositeDynamicObject.getProperty(CompositeDynamicObject.java:78)
        at org.gradle.api.internal.artifacts.dependencies.DefaultProjectDependency_Decorated.getProperty(Unknown Source)
(以下略)

上記の1行目のCannot evaluate module volley : Configuration with name ‘default’ not found.がポイントです。

エラーダイアログに無かったCannot evaluate module volleyがあることで、犯人がvolley(のgradle)だと判りましたね。

この例では、volleyがサブモジュールでインストールされてなかったためそもそもbuild.gradleがなくて怒られていたので、最終的にgit submodule add でvolleyを追加してやることで無事解決しました。

忙しい人のための解決方法

ここまで書いてきたidea.logから探す方法ですが、ログはめちゃくちゃ見づらいので、
直接 gradlew なりgradle なりをコマンドラインから実行したほうがわかりやすいです。

./gradlew tasks --info

上記のコマンドをbuild.gradle (とgradlrew)のあるディレクトリで実行すると、
Android Studioから開いた時と同じところでこけて最後にCannot evaluate module volley : Configuration with name ‘default’ not found.のような原因が表示されます。

idea.logなんて見なくてもよかった(gradleに関しては)。

ひとこと

Android Studio で既存プロジェクトを github から git cloneして開こうとした時にはまったので。