我有一个xamarin android项目(VS2015),我添加了一个Android绑定库项目来使用java lib。包装器工作正常,我可以在我的应用程序项目中调用类/方法。但是其中一个java类依赖于
armeabi / libjnisgfplib.so
我已尝试在我的应用程序中添加/ Assets和/ libs。 BuildAction = AndroidNativeLibrary,Copy = Always。然而,它无法找到lib而且我一直在寻找。
java.lang.UnsatisfiedLinkError中: dalvik.system.PathClassLoader [DexPathList [[zip文件 " /data/app/com.company-1/base.apk"],nativeLibraryDirectories = [/数据/应用/ com.company-1 / LIB /臂, / vendor / lib,/ system / lib]]]无法找到" libjnisgfplib.so"
我在调用类之前尝试了Java.Lang.JavaSystem.LoadLibrary("libjnisgfplib");
,但是我收到了同样的例外。
如何将libjnisgfplib.so添加到我的项目中,以便绑定库jar可以找到它?
答案 0 :(得分:2)
因此,我完全掌握了为什么这有效,但改变了名称
libjnisgfplib.so jnisgfplib.so
的工作。我假设它是lib / libjnis正在抛弃它,但lib / jnis很好。
答案 1 :(得分:1)
尝试使用libs\armeabi-v7a\libjnisgfplib.so
。它解决了我遇到的同样问题。
答案 2 :(得分:0)
您是否尝试使用armeabi将.so文件定义为AndroidNativeLibrary?
<ItemGroup>
<AndroidNativeLibrary Include="path/to/libjnisgfplib.so">
<Abi>armeabi</Abi>
</AndroidNativeLibrary>
</ItemGroup>
http://developer.xamarin.com/guides/android/advanced_topics/using_native_libraries/