2014-09-16 2 views
1

У меня есть статическая библиотека (libnative.a), которую я создал для архитектуры arm. Теперь я хочу использовать библиотеку в приложении для Android, используя NDK. Мои Android.mk имеетИмпорт статической библиотеки в Android-проект

LOCAL_STATIC_LIBRARIES := libnative 

я также пытался загрузить библиотеку в Java с помощью System.loadLibrary ("путь/к// libnative.a");

Но я получаю сообщение об ошибке:

java.lang.UnsatisfiedLinkError: Couldn't load libnative.a from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.testsdk-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.testsdk-2, /system/lib]]]: findLibrary returned null 

Пожалуйста, помогите мне в загрузке статических библиотек в приложение для Android. Я уже работал с общими библиотеками. Я очень familier с загрузкой .so файлов. . Спасибо в Advance :)

ответ

3

Вы не можете загрузить статическую библиотеку - только общие библиотеки фактически включены в APK и установлены на телефоне. Когда вы включаете статическую библиотеку при создании общей библиотеки (используя LOCAL_STATIC_LIBRARIES := libnative в Android.mk), она фактически привязана к общей библиотеке, так что общая библиотека содержит весь код из статического. Поэтому вам нужно только загрузить общую библиотеку, используя System.loadLibrary().

+0

Спасибо за ответ. Можно ли использовать статическую библиотеку в приложении без упаковки в APK. Я имею в виду, можем ли мы динамически указывать на статическую библиотеку, которая может находиться где-то на устройстве? – Kishore

+1

Нет, это невозможно, насколько я знаю. Статическая библиотека может использоваться только как промежуточный шаг при создании общей библиотеки. – mstorsjo

+0

Еще раз спасибо :) Вы очистили мои сомнения :) – Kishore

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