2015-06-30 5 views
2

У меня есть проект xamarin android (VS2015), который я добавил в проект библиотеки привязок для Android, чтобы использовать java lib. Обертка отлично работает, и я могу вызвать классы/методы в моем проекте приложения. Однако один из классов ява зависит отДобавление .so к библиотеке привязки андроида Xamarin

armeabi/libjnisgfplib.so

Я попытался добавить к обоим/активов и/LIBS в моем приложении. 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 в мой проект, чтобы банер библиотеки привязки мог его найти?

+0

Является ли .so внутри '/ lib /' или он вложен внутри '/ lib/arm /'? По моему опыту, вам нужно поместить файл .so в одну из двоичных папок ('arm',' x86' и т. Д.) Для его разрешения. – matthewrdev

+0

Это в lib/armeabi/Я также попробовал руку/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. Он решил ту же проблему, что и у меня.

Смежные вопросы