1

我正在尝试使用提供的 mongoDB java 驱动程序将 MongoDB atlas 与我的 android 应用程序连接起来,但问题是代码在使用 gradle 的 intellij 中运行良好,但是一旦我使用 android studio 运行代码,它就会抛出错误:

我正在使用的代码:

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());
        }
    }
}

错误:

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)

我想知道是否有任何正确的方法可以在不使用 MongoDB Realm 或任何其他第三方框架的情况下在 android 上使用 mongoDB atlas。

4

0 回答 0