У меня есть рабочий проект, где я использую JNI
вызывать методы из C
библиотека.
Структура моего проекта:
И код, который загружает библиотеку:
static {
System.loadLibrary("RemoveBackground");
}
Работает хорошо. Но пока я не попытаюсь интегрировать этот функционал в другой проект. Я скопировал jni
а также libs
папки. Также все three classes
без RemoveBackgroundActivity
(тестовая деятельность). И когда я скомпилировал этот проект, у меня есть исключение:
1663-1663/com.example.Activities E/dalvikvm﹕ The lib may be ARM... trying to load it [/data/data/com.example.Activities/lib/libRemoveBackground.so] using houdini
1663-1663/com.example.Activities E/dalvikvm﹕ dvmHoudiniDlopen returns 0x9833cf40 with bool=1
Вы знаете, как решить проблему или каким-либо другим способом сделать это?
Я полагаю, что RemoveBackground.so
Собственная библиотека, которую вы пытаетесь использовать, не была построена для архитектуры ARM. Я не уверен насчет Linux, но в Mac OS X вы можете проверить поддерживаемые архитектуры нативной библиотеки, используя липо команда. Например:
lipo -info /usr/lib/RemoveBackground.so
Других решений пока нет …