android - 在资源路径 (.) 中找不到 Android-Native 库 (com/sun/jna/android-x86/libjnidispatch.so)
问题描述
我正在使用 MongoDB Stitch 开发我的 android 应用程序,它有一个先决条件,我需要安装 MongoDB Mobile Tarball。安装结构
安装后我运行程序,得到这个异常:
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
在我的 jniLibs 中,我还包含了 libjnidispatch.io 文件。请帮助我解决这个奇怪的错误。我使用的模拟器是 Nexus 6 API 28。谢谢!!!
解决方案
推荐阅读
- java - 为文件 tensorflow_jni.dll 加载本机库失败
- .net - 如何让超链接在从 RTF 文件创建的 FlowDocument 中工作
- python - Python - 根据条件搜索不同的 imap 收件箱
- python - 如何在 Python 中阻止鼠标单击选定区域?
- java - 删除函数只能运行一半,直到 **arrayList.remove(which_item);** 显示问题
- java - 有一个带有 3 个不同背景图像的按钮。安卓工作室、XML、Java
- .net - 将 Office 安装到 Windows 容器 (servercore:ltsc2019) 失败,错误代码为 17002
- c++ - 头文件中的“关键字”短语有什么作用?
- html - 模态正在打开,但来自 Inputs 的值未定义。它发生在第一次打开模态时
- r - 当间隔长度为1时,为什么R列间隔切片不起作用?