Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk8-1.6.0

This error occurs when you have two or more dependencies in your project that contain the same class, in this case, kotlin.collections.jdk8.CollectionsJDK8Kt. The specific dependencies causing the issue are org.jetbrains.kotlin:kotlin-stdlib:1.8.0 and org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0. These dependencies have overlapping classes, causing a conflict in the build process.

To resolve the issue, you should use only one version of the Kotlin standard library in your project. Since kotlin-stdlib-jdk8 is an extension of the kotlin-stdlib that provides additional functionality for JDK 8, you should keep kotlin-stdlib-jdk8 and remove the explicit dependency on kotlin-stdlib.

If you’re using Gradle, update your build.gradle file as follows:

dependencies {
    // Remove or comment out the following line:
    // implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.8.0'

    // Keep this line and make sure both versions are consistent
    implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0'

If you’re using Maven, update your pom.xml file:



After making these changes, sync or update your project dependencies and rebuild your project. The issue should be resolved, and your project should compile successfully.

More Solutions

f you have resolved the duplicate class issue but are still experiencing problems or have other dependencies causing similar issues, consider the following additional steps:

  1. Analyze dependencies: Use the dependency analysis tool provided by your build system to identify any other conflicting or duplicate dependencies. For Gradle, you can use the ./gradlew dependencies command to generate a dependency tree. For Maven, you can use the mvn dependency:tree command.

  2. Update other dependencies: Ensure all your dependencies are up-to-date and compatible with each other. Sometimes, using different versions of related libraries can cause compatibility issues or duplicate class errors. Check the libraries’ documentation to make sure you’re using compatible versions.

  3. Exclude transitive dependencies: If you identify a dependency conflict caused by transitive dependencies (dependencies brought in by other dependencies), you can exclude the conflicting dependency using your build system’s exclusion mechanism. Be cautious with this approach, as it may cause issues if the excluded dependency is required by the library.

    For Gradle, you can exclude a transitive dependency like this:

    implementation('com.example.library:library:1.0.0') {
        exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib'
    For Maven, you can exclude a transitive dependency as follows:
  4. Use dependency configurations: If you’re using Gradle, ensure you’re using the correct dependency configurations, such as implementation, api, compileOnly, and runtimeOnly, to control the visibility of your dependencies and prevent unintended conflicts.
  5. Clean and rebuild the project: Sometimes, build issues can be resolved by cleaning your project’s build cache and rebuilding it. For Gradle, use ./gradlew clean build. For Maven, use mvn clean install.
  6. Seek help from the community: If you’ve tried all the steps above and are still experiencing issues, consider reaching out to the library maintainers or the development community for help. They may be able to provide guidance or suggest alternative solutions to resolve the problem.

By following these additional steps, you can further investigate and resolve any remaining dependency conflicts in your project. Proper dependency management is crucial for maintaining a stable and healthy codebase, so always strive to keep your dependencies up-to-date and compatible with each other.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.