Включите статическую библиотеку в общую библиотеку, используя поддержку Gradle Native Binary.

У меня есть 2 проекта:

  • Статическая библиотека libSL.a, созданная с помощью NDK r9 и Android.mk.
  • An Android Studio project containing:
    • WL.java (a JNI wrapper around libWL.so).
    • jniWL.h и jni/WL.c (исходный код libWL.so), для которых требуется libSL.a.
    • lib/libWL.so.

Как включить libSL.a в libWL.so с поддержкой собственного двоичного кода Gradle?


person David Andreoletti    schedule 20.05.2014    source источник


Ответы (1)


Чтобы включить статическую библиотеку, вам нужно добавить ее на этапе компоновки в качестве параметра для компоновщика. Не имеет значения, является ли цель общей библиотекой или исполняемым файлом. я использовал

ndk {
    ...
    ldLibs "/some/path/libs/libcurl.a", "z", "log", "android", "EGL", "GLESv2", "OpenSLES"
}

в моем проекте. А также:

 stl "gnustl_static"

И это дало мне родной модуль .so.

person Victor Laskin    schedule 13.10.2014