在资源路径(。)中找不到Android本机库(com / sun / jna / android-x86 / libjnidispatch.so)

时间:2018-08-09 05:19:53

标签: android mongodb java-native-interface

我正在使用MongoDB Stitch开发我的android应用,这是我需要安装MongoDB Mobile Tarball的先决条件。Installation Structure

安装后,我运行该程序,并得到以下异常:

08-09 13:01:34.308 20251-20278/? E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
    Process: io.datats.datatungshing.app, PID: 20251
    java.lang.RuntimeException: An error occurred while executing doInBackground()
        at android.os.AsyncTask$3.done(AsyncTask.java:354)
        at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
        at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
        at java.util.concurrent.FutureTask.run(FutureTask.java:271)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:764)
     Caused by: com.mongodb.embedded.client.MongoClientEmbeddedException: Failed to load the mongodb library: 'mongo_embedded_capi'.
     Native library (com/sun/jna/android-x86/libjnidispatch.so) not found in resource path (.) 

     Please set the library location by either:
     - Adding it to the classpath.
     - Setting 'jna.library.path' system property
     - Configuring it in the 'MongoEmbeddedSettings.builder().libraryPath' method.

        at com.mongodb.embedded.client.MongoDBCAPIHelper.init(MongoDBCAPIHelper.java:60)
        at com.mongodb.embedded.client.MongoClients.init(MongoClients.java:38)
        at com.mongodb.stitch.core.services.mongodb.local.internal.CoreLocalMongoDbService.getClient(CoreLocalMongoDbService.java:36)
        at com.mongodb.stitch.android.services.mongodb.local.LocalMongoDbService.access$000(LocalMongoDbService.java:35)
        at com.mongodb.stitch.android.services.mongodb.local.LocalMongoDbService$1.getClient(LocalMongoDbService.java:50)
        at com.mongodb.stitch.android.services.mongodb.local.LocalMongoDbService$1.getClient(LocalMongoDbService.java:41)
        at com.mongodb.stitch.android.core.internal.StitchAppClientImpl.getServiceClient(StitchAppClientImpl.java:105)
        at io.datats.datatungshing.forboledts.SecondActivity$getTrendFromDB.doInBackground(SecondActivity.java:57)
        at io.datats.datatungshing.forboledts.SecondActivity$getTrendFromDB.doInBackground(SecondActivity.java:37)
        at android.os.AsyncTask$2.call(AsyncTask.java:333)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
            ... 4 more
     Caused by: java.lang.UnsatisfiedLinkError: Native library (com/sun/jna/android-x86/libjnidispatch.so) not found in resource path (.)
        at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:962)
        at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:922)
        at com.sun.jna.Native.<clinit>(Native.java:190)
        at com.sun.jna.Native.loadLibrary(Native.java:544)
        at com.mongodb.embedded.client.MongoDBCAPIHelper.init(MongoDBCAPIHelper.java:58)
            ... 14 more

突出显示的代码在我的AsyncTask中,它只是在我的Java程序中创建一个MongoClient:

    final StitchAppClient client =
            Stitch.initializeDefaultAppClient("APP-ID");
    final MongoClient mobileClient =
            client.getServiceClient(LocalMongoDbService.clientFactory);
    MongoCollection<Document> localCollection =
            mobileClient.getDatabase(databaseName).getCollection("CollectionName");
    /*Document doc = localCollection.find().first();
    this.keywordList = (List<String>) doc.get("list");*/
    return true;

我还在src / main /中创建了一个jniLibs目录,其中包含以下组件: jniLibs

在我的jniLib中,我还包含文件libjnidispatch.io。请帮助我解决这个奇怪的错误。我使用的仿真器是Nexus 6 API28。谢谢!!!

0 个答案:

没有答案
相关问题