So I ran through the couchbaseLite Tutorial for 2.7.0 and Whenever I try to run the CouchbaseLite.init(context) I get the error below. The issue doesn’t happen after downgrading to 2.6.0
2020-03-18 12:04:35.405 32298-32298/com.couchbaselite_tutorial E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.couchbaselite_tutorial, PID: 32298
java.lang.BootstrapMethodError: Exception from call site #23 bootstrap method
at com.couchbase.lite.internal.AndroidExecutionService.(AndroidExecutionService.java:70)
at com.couchbase.lite.CouchbaseLite.getExecutionService(CouchbaseLite.java:80)
at com.couchbase.lite.internal.core.C4Log.setCallbackLevel(C4Log.java:74)
at com.couchbase.lite.internal.core.C4Log.setCallbackLevel(C4Log.java:38)
at com.couchbase.lite.internal.support.Log.initLogging(Log.java:90)
at com.couchbase.lite.CouchbaseLite.init(CouchbaseLite.java:69)
at com.couchbaselite_tutorial.MainActivity.onCreate(MainActivity.kt:17)
at android.app.Activity.performCreate(Activity.java:7136)
at android.app.Activity.performCreate(Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: java.lang.ClassCastException: Bootstrap method returned null
at com.couchbase.lite.internal.AndroidExecutionService.(AndroidExecutionService.java:70)
at com.couchbase.lite.CouchbaseLite.getExecutionService(CouchbaseLite.java:80)
at com.couchbase.lite.internal.core.C4Log.setCallbackLevel(C4Log.java:74)
at com.couchbase.lite.internal.core.C4Log.setCallbackLevel(C4Log.java:38)
at com.couchbase.lite.internal.support.Log.initLogging(Log.java:90)
at com.couchbase.lite.CouchbaseLite.init(CouchbaseLite.java:69)
at com.couchbaselite_tutorial.MainActivity.onCreate(MainActivity.kt:17)
at android.app.Activity.performCreate(Activity.java:7136)
at android.app.Activity.performCreate(Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initialize the Couchbase Lite System
CouchbaseLite.init(applicationContext);
//Create the database (and create it if it doesn't exist).
var config: DatabaseConfiguration = DatabaseConfiguration();
var database: Database = Database("getting-started", config);
//Create a Couchbase Document a record in the database
var mutableDoc: MutableDocument = MutableDocument().setFloat("version", 2.0F).setString("type", "SDK");
//Save to the database
database.save(mutableDoc);
//Update a document
mutableDoc = database.getDocument(mutableDoc.id).toMutable();
mutableDoc.setString("Language", "Java");
database.save(mutableDoc);
var document: Document = database.getDocument(mutableDoc.id);
//Log the document ID (generated by the database) and properties
Log.i("MyActivity", "Document ID :: " + document.id);
Log.i("MyActivity", "Learning " + document.getString("language"));
var query: Query = QueryBuilder.select(SelectResult.all())
.from(DataSource.database(database)).
where(Expression.property("type").equalTo(Expression.string("SDK")));
var result: ResultSet = query.execute();
Log.i("MyActivity", "Number of rows :: " + result.allResults().size);
// Create replicators to push and pull changes to and from the cloud.
var targetEndpoint: Endpoint = URLEndpoint(URI("ws://localhost:4984/getting-started-db"));
var replConfig: ReplicatorConfiguration = ReplicatorConfiguration(database, targetEndpoint);
replConfig.replicatorType = ReplicatorConfigurationTypes.replicatorType("Push_And_Pull");
// Add authentication.
replConfig.authenticator = BasicAuthenticator("sync-gateway", "password");
// Create replicator (be sure to hold a reference somewhere that will prevent the Replicator from being GCed)
var replicator = Replicator(replConfig);
//Listen to replicator change events.
replicator.addChangeListener { change: ReplicatorChange ->
if (change.status.error != null) {
Log.i("MainActivity", "Error code :: " + change.status.error.code)
}
}
// Start Replication.
replicator.start();
}