Troubleshooting for Java SDK
Understand what to do when you encounter the most common issues.
java.lang.NoClassDefFoundError: kotlin/enums/EnumEntriesKt
If you encounter java.lang.NoClassDefFoundError: kotlin/enums/EnumEntriesKt, ensure that the effective Kotlin version in your project is 1.9+. This is required for the PubNub Java SDK to work properly.
Root cause
The java.lang.NoClassDefFoundError: kotlin/enums/EnumEntriesKt error may occur when an old version of spring-boot-dependencies is defined in the dependency-management section of pom.xml:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.6.13</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
In such case, dependencies like kotlin-stdlib and kotlin-stdlib-common are enforced in version 1.6.21 that is too old for the PubNub Java SDK to work properly.
Fix
There are two ways to fix the java.lang.NoClassDefFoundError: kotlin/enums/EnumEntriesKt issue:
-
Add explicit declarations of
kotlin-stdlibandkotlin-stdlib-commonin version1.9.+to yourpom.xmlfile.<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.9.10</version>
</dependency><dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-common</artifactId>
<version>1.9.10</version>
</dependency> -
Update the
spring-bootversion to one that enforceskotlin-stdlibandkotlin-stdlib-commonin version1.9.+, such as3.4.5or higher.