1

I am trying to connect MongoDB atlas with my android app using the provided mongoDB java driver, but the problem is that the code works fine in intellij using gradle but as soon as I use android studio to run the code it throws errors:

The Code that I am using:

package com.demo.mongodemo;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.TextView;

import static com.mongodb.client.model.Filters.eq;
import org.bson.Document;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView textView = findViewById(R.id.TextBox);

        String uri = "mongodb+srv://username:password@cluster0.mabfo.mongodb.net/myFirstDatabase?retryWrites=true&w=majority";

        try (MongoClient mongoClient = MongoClients.create(uri)) {
            MongoDatabase database = mongoClient.getDatabase("database");
            MongoCollection<Document> collection = database.getCollection("collection");

            Document doc = collection.find(eq("Index", 1)).first();
            //textView.setText(doc.toJson());
            textView.setText(doc.toString());
        }
    }
}

Error:

java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/naming/directory/InitialDirContext;
        at com.mongodb.internal.dns.DefaultDnsResolver.createDnsDirContext(DefaultDnsResolver.java:151)
        at com.mongodb.internal.dns.DefaultDnsResolver.resolveAdditionalQueryParametersFromTxtRecords(DefaultDnsResolver.java:112)
        at com.mongodb.ConnectionString.<init>(ConnectionString.java:384)
        at com.mongodb.client.MongoClients.create(MongoClients.java:61)
        at com.demo.mongodemo.MainActivity.onCreate(MainActivity.java:26)

I want to know if there is any proper way to use mongoDB atlas on android without using MongoDB Realm or any other thrid-party frameworks.

Aniruddh Parihar
  • 3,072
  • 3
  • 21
  • 39
Tom Shaw
  • 139
  • 12

0 Answers0