Android: используйте так файлы из другого проекта - PullRequest
0 голосов
/ 23 ноября 2018

Я пытаюсь использовать внешний SDK, который включает в себя файл JAR и некоторые файлы * .so.Также есть пример проекта от Eclipse, который включает в себя те же файлы.Когда я импортирую проект в android studio, он работает нормально, но когда я пытался скопировать * .so файлы из импортированного проекта в мой текущий проект, это вызывает ошибку UnsatisfiedLinkError

Пример цели проекта api 14, мой проект target api 27Должен ли я включить поддержку ndk в мой текущий проект и перекомпилировать эти * .so файлы или, может быть, есть какой-либо вариант использовать старые файлы из образца?

1 Ответ

0 голосов
/ 24 ноября 2018

1.создайте папку с именем jniLibs в папке main, структура выглядит так, как показано на рисунке ниже.

 |–app:
    |–|–src:
    |–|–|–main
    |–|–|–|–jniLibs
    |–|–|–|–|–armeabi
    |–|–|–|–|–|–.so Files
    |–|–|–|–|–x86
    |–|–|–|–|–|–.so Files
    ...
    |–|–|–|–|–other abi folder such as armeabi-v7a
    |–|–|–|–|–|–.so Files

поместите файл .jar в папку проекта libs и добавьте строку ниже в module файл build.gradle

зависимости {файлы реализации ('libs / your_own.jar')}

Все должно быть в порядке.

Отредактировано: Некоторые из Android-устройств (эмулятор) имеют 64-битные процессоры, если у вашего jinLibs нет arm64 вложенная папка, вы можете добавить эти фильтры (abiFilters) в файлы build.gradle вашего модуля приложения:

defaultConfig {
    ...

    ndk {
        abiFilters "armeabi-v7a", "x86", "armeabi", "mips"
    }

}

это скажет приложению использовать только .so файлы в существующих папках.

...