2015-06-30 162 views
2

我有一個xamarin android項目(VS2015),我添加了一個Android綁定庫項目來使用java lib。包裝工作正常,我可以在我的應用程序項目中調用類/方法。然而,一個Java類取決於添加.so到Xamarin android綁定庫

armeabi/libjnisgfplib.so

我曾嘗試加入兩/資產和/庫我的應用程序中。 BuildAction = AndroidNativeLibrary,Copy = Always。然而,它找不到這個lib,我不斷收到。

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.company-1/base.apk"],nativeLibraryDirectories=[/data/app/com.company-1/lib/arm, /vendor/lib, /system/lib]]] couldn't find "libjnisgfplib.so"

我試圖Java.Lang.JavaSystem.LoadLibrary("libjnisgfplib");調用類之前,但我收到同樣的exeption。

如何將libjnisgfplib.so添加到我的項目中,以便綁定庫jar可以找到它?

+0

.so是'.so在'/ lib /'中,還是嵌套在'/ lib/arm /'裏?根據我的經驗,您需要將.so文件放入其中一個二進制文件夾('arm','x86'等)中以供解決。 – matthewrdev

+0

這是在lib/armeabi /我也試過arm/x86/armeabi-v7a等。 – user2634703

+0

嗯,好的。下一步是遠程進入設備,找到'.so'文件的位置:'adb shell' - >'run-as com.company-1'。在應用程序文件夾中探索。也許這將有一些線索? – matthewrdev

回答

0

所以這是一個總的掌握來我爲什麼這個工作,但來自

libjnisgfplib.so to jnisgfplib.so

更名工作。我假設它正在被lib/libjnis丟掉,但lib/jnis很好。

1

嘗試使用libs\armeabi-v7a\libjnisgfplib.so。它解決了我遇到的同樣的問題。