Я создал проект библиотеки андроида, который использует некоторые собственные библиотеки.Андроид родной lib не установлен с APK
Я создал обертку jni и поместил собственные libs (.so) в папки libs //. Нативные библиотеки скомпилированы с использованием cmake, для armeabi, armeabi-v7a, x86 и mips.
Я экспортирую этот проект в банку и поставлю эту банку в «обычный» проект андроида. Затем я экспортирую этот проект в apk и вижу, что мои библиотеки связаны с ним.
Однако, когда я устанавливаю apk, libs, соответствующие устройству, не копируются в /data/data/com.my.app/lib, и, очевидно, при запуске приложения жалуются на то, что вы не обнаруживаете библиотеки (UnsatisfiedLinkError).
Я искал SO и везде, где могу, но не нашел ответа, который разрешил мое дело.
Я использую Eclipse, кстати
Спасибо за вашу помощь
UPDATE
ОК, я читал документ в НДК и видели примеры, и, к сожалению, я не может видеть решение.
ndk строит код c в разделяемые библиотеки и помещает их в выделенное место в проекте. Но он не генерирует ничего, что говорит о том, что libs должен быть установлен с apk.
Моя цель - предоставить андроидную библиотеку (например, банку), которая может быть включена в приложение для Android. Я не вижу реальной разницы между тем, что я делаю (скомпилируйте c libs с помощью cmake и упакуйте jni и java скомпилированные классы в банку) и что делается с android.mk
Если вы видите, что я Мне не хватает, не стесняйтесь говорить мне (даже если это очевидно).
благодаря
UPDATE
Я сделал грязный хак: в папке Libs моего приложения, я поместил файл фляги, содержащий мои классы и мои родные и LIBS копию файлы .so для каждой арки. Suprise, libs не установлены в /data/data/com.me.myapp/lib
Кажется, что это проблема упаковки.
Предлагаю вам ознакомиться с документацией, поставляемой с NDK. – krsteeve
Хороший старый rtfm – florian
Вы не можете просто поместить библиотеку в проект NDK, вы должны включить его в файл Android.mk - здесь есть много документации, а также примеры здесь, на SO – krsteeve