PC パソコン

Solutions for Gradle “Could not open cp_settings generic class cache”

When building a project with Gradle, you may encounter the error “Could not open cp_settings generic class cache”.

This error occurs when Gradle cannot correctly open the cache used to process configuration files and other related data.

Possible causes include incompatible Gradle and JDK versions, a corrupted Gradle cache, running an old version of Gradle with a new version of Java, the state of the Gradle Daemon, file permissions, and inconsistencies caused by moving the project from another environment.

This article explains the main causes and solutions in order when “Could not open cp_settings generic class cache” appears in Gradle.

What Is “Could not open cp_settings generic class cache”?

Gradle stores configuration files, script analysis results, and other information as a cache to speed up builds.

If that cache cannot be loaded, an error like the following may appear.

Could not open cp_settings generic class cache for settings file

The project’s settings.gradle file or the path to the Gradle cache may also be displayed afterward.

This error can occur not only because of simple cache corruption, but also because of compatibility problems between Gradle and Java.

Cause 1: The Gradle and JDK Versions Are Incompatible

One of the most important things to check for “Could not open cp_settings generic class cache” is the combination of Gradle and the JDK.

The supported Java versions differ depending on the Gradle version.

If an old version of Gradle is run with a new JDK, an error may occur while compiling Gradle scripts.

You can check the currently used Java version with the following command.

java -version

To check the Java version actually used by Gradle, you can also use the following command.

./gradlew --version

Check the combination of the displayed Gradle version and JVM version.

Cause 2: An Old Version of Gradle Is Being Run with a New Version of Java

Old Android projects may be configured to use a very old version of Gradle.

If such a project is opened in a newer version of Android Studio or in a newer JDK environment, “Could not open cp_settings generic class cache” may occur.

The Gradle version can usually be checked in gradle-wrapper.properties.

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

If you use a newer JDK, you may need to update Gradle to a version that supports that JDK.

If you update only Gradle to the latest version without checking compatibility, other compatibility errors may occur with components such as the Android Gradle Plugin. Update while checking the combination of Gradle, the Android Gradle Plugin, and the JDK.

Cause 3: The Gradle Cache Is Corrupted

Gradle stores build-related caches in the user environment.

If part of the cache is corrupted, even valid Gradle files may fail to load.

To recheck dependencies, you can use the following command.

./gradlew build --refresh-dependencies

However, if this error is related to the Gradle script cache itself, retrieving dependencies again may not resolve the problem.

Cause 4: There Is a Problem with the .gradle Directory in the Project

In a Gradle project, a .gradle directory may be created inside the project.

Project-specific caches and build information are stored there.

If this information becomes inconsistent, Gradle Sync or the build may fail.

After closing Gradle and Android Studio, regenerating the .gradle directory inside the project may resolve the issue.

.gradle is a cache directory that Gradle regenerates. However, when performing deletion operations, make sure that the target is the project’s cache.

Cause 5: There Is a Problem with the User-Level Gradle Cache

Gradle stores caches not only inside the project but also in the user’s home directory.

Gradle version-specific caches and other data are generally stored inside the .gradle directory.

If old caches and a new Java environment are mixed together, or if cache files are corrupted, this may cause an error.

Stopping the Gradle Daemon and then building again may resolve the problem.

./gradlew --stop

Cause 6: The Gradle Daemon Is Running with an Old JDK

Gradle may use the Gradle Daemon to speed up builds.

Even if you change the Java version or JAVA_HOME, an already running Daemon may continue to use the old Java environment.

In this case, stop the Gradle Daemon.

./gradlew --stop

After that, run Gradle Sync or the build again.

Cause 7: The JAVA_HOME Setting Is Incorrect

When running Gradle from the terminal, the JDK used may be determined by JAVA_HOME.

You can check the current setting with the following command.

echo $JAVA_HOME

If JAVA_HOME points to an old JDK or a directory that does not exist, Gradle may run in an unexpected Java environment.

Checking both java -version and ./gradlew --version makes it easier to determine which Java version is actually being used.

Cause 8: Android Studio and the Terminal Are Using Different JDKs

Android Studio can configure its own Gradle JDK.

As a result, a build may succeed in the terminal but fail in Android Studio, or conversely, it may succeed in Android Studio but fail in the terminal.

Check whether the Gradle JDK in Android Studio matches the JDK used in the terminal.

Cause 9: Compilation of settings.gradle Is Failing

If the name cp_settings appears, there may be a problem at the stage where Gradle processes configuration scripts such as settings.gradle.

For example, settings.gradle may contain syntax or processing that is not available in the current version of Gradle.

rootProject.name = 'ExampleProject'
include ':app'

If the error occurs immediately after changing Gradle or a plugin, also check the contents of settings.gradle or settings.gradle.kts.

Cause 10: There Is a Compatibility Problem Between Groovy and Java

Gradle internally uses components such as Groovy that correspond to the Gradle version.

If a very new JDK is used with an old version of Gradle, internal components such as Groovy may not support that Java version, causing an error during script compilation.

In this case, deleting the cache alone will not resolve the issue, and you need to change Gradle or the JDK to a compatible version combination.

Cause 11: “Unsupported class file major version” Is Displayed

After “Could not open cp_settings generic class cache”, an error like the following may appear.

Unsupported class file major version XX

In this case, the Java class file version and the Java version supported by Gradle may not match.

In particular, if the error occurs immediately after updating the JDK or migrating to a newer version of Android Studio, check the compatibility between Gradle and the JDK.

If “Unsupported class file major version” is displayed at the same time, check for a Gradle and Java version mismatch before focusing on the cache.

Cause 12: Version Incompatibility with the Android Gradle Plugin

In Android projects, not only Gradle and the JDK but also the version of the Android Gradle Plugin (AGP) is involved.

If only Gradle is updated, the Android Gradle Plugin may not support that Gradle version.

Conversely, if only the Android Gradle Plugin is updated, it may not work with an older version of Gradle.

For Android projects, check Gradle, AGP, and the JDK together.

Cause 13: There Is a Problem with File or Directory Access Permissions

If read or write permissions for the Gradle cache or project files are insufficient, Gradle may be unable to open the cache and an error may occur.

If you copied a project created by another user or moved it from external storage, check whether there is a problem with the file owner or access permissions.

Cause 14: The Project Was Copied from Another PC or Environment

If you copied a project from another PC, Gradle caches and settings created in the previous environment may remain.

In particular, moving a project between environments with different JDK or Gradle versions may cause inconsistencies.

In this case, regenerate the project cache and run Gradle Sync in the current environment.

Cause 15: The Gradle Wrapper Is Not Being Used

If you directly use Gradle installed on the system, the project may be built with a version different from the Gradle version expected by the project.

If the Gradle Wrapper is included in the project, run Gradle through the Wrapper as follows.

./gradlew build

This allows you to use the Gradle version specified in gradle-wrapper.properties.

Solutions to Check First

If “Could not open cp_settings generic class cache” occurs, checking the following items in order can make it easier to narrow down the cause.

  1. Check whether a message such as “Unsupported class file major version” is displayed below the error.
  2. Check the Java version with java -version.
  3. Check Gradle and the JVM actually being used with ./gradlew --version.
  4. Check the Gradle version in gradle-wrapper.properties.
  5. Check whether the Gradle and JDK combination is supported.
  6. For Android projects, also check the Android Gradle Plugin version.
  7. Stop the Gradle Daemon.
  8. Run Gradle Sync again.
  9. Check whether there is a problem with the Gradle cache inside the project.
  10. Check JAVA_HOME and the Gradle JDK in Android Studio.
  11. Check the declarations in settings.gradle or settings.gradle.kts.

First Check the Gradle and Java Versions

With this error, it is important to check the Gradle and Java versions before immediately deleting the cache.

Check the Java version.

java -version

Next, check the JVM that Gradle is actually using.

./gradlew --version

If Gradle is using an unexpected JDK, review the Gradle JDK or JAVA_HOME settings.

Stop the Gradle Daemon and Run Again

If the error continues after changing Java or Gradle settings, stop the Gradle Daemon that is running in the old environment.

./gradlew --stop

After that, run the build again.

./gradlew build

Display Detailed Errors

If the cause cannot be determined from the normal error output alone, check the stack trace.

./gradlew build --stacktrace

To check more detailed information, you can also use an option such as the following.

./gradlew build --info

By checking the specific exception displayed immediately after “Could not open cp_settings generic class cache”, it becomes easier to determine whether the cause is cache corruption, Java compatibility, or a Gradle script problem.

Do Not Judge the Cause from the First Error Message Alone

“Could not open cp_settings generic class cache” may be a higher-level message rather than the actual cause.

For example, another error may follow it as shown below.

Could not open cp_settings generic class cache for settings file
> BUG! exception in phase 'semantic analysis'
> Unsupported class file major version XX

In this case, “Unsupported class file major version” is the specific cause rather than the inability to open the cache itself.

When checking the error, also look at messages displayed below “Could not open cp_settings generic class cache”, such as “Caused by”, “Unsupported class file major version”, and “Could not compile settings file”.

Relationship Between “Could not open cp_settings generic class cache” and Cache Deletion

Because the error name contains the word “cache”, you may immediately suspect that the Gradle cache is corrupted.

The cache may indeed be the cause, but compatibility problems between Gradle and the JDK may also prevent an existing cache from being loaded correctly.

Therefore, if the same error occurs even after regenerating the cache, check the versions of Gradle, the JDK, and the Android Gradle Plugin.

Summary

Gradle’s “Could not open cp_settings generic class cache” is an error displayed when Gradle cannot correctly open a cache related to configuration scripts and similar data.

Main causes include incompatible Gradle and JDK versions, the combination of an old version of Gradle with a new version of Java, inconsistencies in the Gradle cache, the Gradle Daemon, JAVA_HOME, the Gradle JDK in Android Studio, and compatibility with the Android Gradle Plugin.

In particular, if “Unsupported class file major version” is displayed at the same time, it is important to check the Gradle and JDK versions before deleting the cache.

First check the current environment with java -version and ./gradlew --version, and then check Gradle/AGP/JDK compatibility, the Gradle Daemon, the cache, settings.gradle, and other related settings in order to efficiently narrow down the cause.