Using Couchbase Lite 3.0.5 Enterprise:
java.lang.NoClassDefFoundError: Failed resolution of: Lokhttp3/internal/Util;
at com.couchbase.lite.AbstractReplicatorConfiguration.verifyHeartbeat(AbstractReplicatorConfiguration.java:56)
at com.couchbase.lite.ReplicatorConfiguration.<init>(ReplicatorConfiguration.java:85)
at com.couchbase.lite.ConfigurationFactoriesKt.create(ConfigurationFactories.kt:47)
at com.couchbase.lite.ConfigurationFactoriesKt.create$default(ConfigurationFactories.kt:29)
Caused by AbstractReplicatorConfiguration.java
:
protected static int verifyHeartbeat(int heartbeat) {
Util.checkDuration("heartbeat", Preconditions.assertNotNegative(heartbeat, "heartbeat"), TimeUnit.SECONDS);
return heartbeat;
}
Because you are using this method from okhttp 4.10.0:
fun checkDuration(name: String, duration: Long, unit: TimeUnit?): Int {
check(duration >= 0L) { "$name < 0" }
check(unit != null) { "unit == null" }
val millis = unit.toMillis(duration)
require(millis <= Integer.MAX_VALUE) { "$name too large." }
require(millis != 0L || duration <= 0L) { "$name too small." }
return millis.toInt()
}
Which is moved on okhttp 5.x and now the Couchbase Lite library cannot reference it anymore