Mac*_*ren 0 android libvirt jna
嘿,我正在尝试使用 JNA 和 libvirt java 绑定设置一个 android studio 项目。
这就是项目结构到目前为止的样子。
到目前为止,这是在测试而不是模拟器,并且尚未导入 arm 二进制文件。
尝试在 libvirt java 绑定中使用 Connect 方法时,出现此错误。
有一个非常类似的帖子在这里
11-18 23:54:37.584 4182-4182/com.local.test E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.local.test, PID: 4182
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:1039)
at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:999)
at com.sun.jna.Native.<clinit>(Native.java:191)
at com.sun.jna.Native.loadLibrary(Native.java:625)
at org.libvirt.jna.Libvirt.<clinit>(Unknown Source)
at org.libvirt.Library.<clinit>(Unknown Source)
at org.libvirt.Connect.<init>(Unknown Source)
at com.local.haris.MainActivity.onCreate(MainActivity.java:34)
at android.app.Activity.performCreate(Activity.java:6662)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Run Code Online (Sandbox Code Playgroud)
注意:Android studio 3.0 没有安装 c++ SDK(我不认为我需要安装,因为我没有编译二进制文件)如果不确定 libvirt java jar 是否适用于 android。我试图找到有关这方面的信息,但没有找到。如果有人可以对此发表评论,将不胜感激。
小智 6
虽然问题出现已经过去很多天了,但我发现添加以下内容可以解决问题(当然使用您选择的版本):
implementation 'net.java.dev.jna:jna:5.8.0@aar'
Run Code Online (Sandbox Code Playgroud)
包括libjnidispatch.so项目支持的所有 Android ABI的共享库。
解压缩包,导航到jna-4.5.0/dist/目录。libjnidispatch.so可以从各自的 jar 文件中提取不同的 ABI。映射如下表所示。
| JNA ABI | Android ABI |
| ------------------- | ------------- |
| android-aarch64.jar | arm64-v8a |
| android-armv7.jar | armeabi-v7a |
| android-x86-64.jar | x86_64 |
| android-x86.jar | x86 |
Run Code Online (Sandbox Code Playgroud)libjnidispatch.so放入映射的 Android ABI 文件夹中,例如arm64-v8a,armeabi-v7a、x86和x86_64。| 归档时间: |
|
| 查看次数: |
1981 次 |
| 最近记录: |