【发布时间】:2015-09-17 17:24:36
【问题描述】:
我有一个 xamarin android 项目 (VS2015),我添加了一个 Android 绑定库项目来使用 java 库。包装器工作正常,我可以在我的应用程序项目中调用类/方法。然而,其中一个 java 类依赖于
armeabi/libjnisgfplib.so
我尝试在我的应用程序中同时添加 /Assets 和 /libs。 BuildAction = AndroidNativeLibrary,复制 = 始终。然而它找不到库,我不断得到。
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip 文件 "/data/app/com.company-1/base.apk"],nativeLibraryDirectories=[/data/app/com.company-1/lib/arm, /vendor/lib, /system/lib]]] 找不到“libjnisgfplib.so”
我在调用课程之前尝试过Java.Lang.JavaSystem.LoadLibrary("libjnisgfplib");,但我收到了同样的例外。
如何将 libjnisgfplib.so 添加到我的项目中,以便绑定库 jar 可以找到它?
【问题讨论】:
-
.so 是在
/lib/内还是嵌套在/lib/arm/内?根据我的经验,您需要将 .so 文件放在其中一个二进制文件夹(arm、x86等)中才能解决。 -
它在 lib/armeabi/ 中,我也尝试过 arm/ x86/ armeabi-v7a 等。
-
嗯,好的。下一步是远程进入设备并找到
.so文件所在的位置:adb shell->run-as com.company-1。在应用程序文件夹中探索。也许这会有一些线索?
标签: android jar xamarin shared-libraries