我正在尝试使用提供的 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。