从Android使用Atlas mongodb时出现NoClassDefFoundError

时间:2019-02-07 13:45:58

标签: java android mongodb

使用 Android Atlas mongodb时,我得到了NoClassDefFoundError。这是代码。

MongoClientURI uri = new MongoClientURI(
        "mongodb://admin:xxx@clusterxxxx.mongodb.net:27017,clusterxxxx.mongodb.net:27017,clusterxxxx.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin&retryWrites=true");

MongoClient mongoClient = new MongoClient(uri);
final MongoDatabase database = mongoClient.getDatabase("test");

Thread thread = new Thread(new Runnable() {
    @Override
    public void run() {
        MongoCollection < Document > collection = database.getCollection("col");
        Document myDoc = collection.find().first();
        Log.i("xxx", myDoc.toJson());
    }
});
thread.start();

我正在使用以下驱动程序。

implementation 'org.mongodb:mongodb-driver:3.10.0'

这是错误消息。

2019-02-07 15:16:54.787 16655-16686/com.vac.wasd.myapplication E/AndroidRuntime: FATAL EXCEPTION: Thread-4
    Process: com.vac.wasd.myapplication, PID: 16655
    com.mongodb.MongoException: java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/security/sasl/SaslClient;
        at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:136)
        at com.mongodb.internal.connection.UsageTrackingInternalConnection.open(UsageTrackingInternalConnection.java:50)
        at com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.open(DefaultConnectionPool.java:390)
        at com.mongodb.internal.connection.DefaultConnectionPool.get(DefaultConnectionPool.java:106)
        at com.mongodb.internal.connection.DefaultConnectionPool.get(DefaultConnectionPool.java:92)
        at com.mongodb.internal.connection.DefaultServer.getConnection(DefaultServer.java:85)
        at com.mongodb.binding.ClusterBinding$ClusterBindingConnectionSource.getConnection(ClusterBinding.java:115)
        at com.mongodb.client.internal.ClientSessionBinding$SessionBindingConnectionSource.getConnection(ClientSessionBinding.java:111)
        at com.mongodb.operation.OperationHelper.withConnectionSource(OperationHelper.java:460)
        at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:406)
        at com.mongodb.operation.FindOperation.execute(FindOperation.java:696)
        at com.mongodb.operation.FindOperation.execute(FindOperation.java:83)
        at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:179)
        at com.mongodb.client.internal.FindIterableImpl.first(FindIterableImpl.java:199)
        at com.vac.wasd.myapplication.MainActivity$1.run(MainActivity.java:41)
        at java.lang.Thread.run(Thread.java:761)
     Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/security/sasl/SaslClient;
        at com.mongodb.internal.connection.DefaultAuthenticator.getLegacyDefaultAuthenticator(DefaultAuthenticator.java:99)

0 个答案:

没有答案