Android NDK и статическая библиотека - PullRequest
0 голосов
/ 14 июля 2011

Мое приложение вылетает, когда я вызываю нативную функцию.Когда я создаю свой собственный код, вывод:

StaticLibrary: libstdc ++. A

SharedLibrary: libnsipjni.so

Установка: libnsipjni.so => ​​libs / armabi / libnsipjni.so

Почему не устанавливается статическая библиотека?Как заставить Android.mk отражать статическую библиотеку?Должен ли я загрузить его в свой код JAVA?

Спасибо, Наум

Ответы [ 2 ]

0 голосов
/ 27 марта 2013

Можете ли вы указать, что вы получили до сих пор? Вы используете таблицу методов?

Пример на android.mk, если статическая библиотека не определена, сначала создайте модуль, содержащий статическую библиотеку, если используется stdc ++, вы можете перейти к следующей части файла make:

#ARM7
#Include POCO JSON LIBRARIES: libPocoJSON.a using the headers in ../JSON/include
include $(CLEAR_VARS)
#LOCAL_ARM_MODE := arm
LOCAL_MODULE := PocoJSONArm7
LOCAL_SRC_FILES := Poco/arm7/libPocoJSON.a 
LOCAL_EXPORT_C_INCLUDES :=/Users/exjobb/poco-1.5.1-all/JSON/include
LOCAL_EXPORT_CFLAGS := -DFOO=1 -fpermissive -O3
LOCAL_EXPORT_LDLIBS := -llog
include $(PREBUILT_STATIC_LIBRARY)

Следующий импорт этого модуля:

# make file for compiling your c++ code to shared library here....

# Add the static libraries
#LOCAL_WHOLE_STATIC_LIBRARIES :=PocoJSONArm7 <- Your library is in stdc++
LOCAL_STATIC_LIBRARY := stdc++ # <- This is where you load your library

LOCAL_LDLIBS     := -llog
LOCAL_CFLAGS     := -O3 -DPOCO_ANDROID -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_WSTRING -DPOCO_NO_SHAREDMEMORY
LOCAL_CPPFLAGS   := -frtti -fexceptions -O3

include $(BUILD_SHARED_LIBRARY)
0 голосов
/ 14 июля 2011

Сначала необходимо создать статическую библиотеку, а затем добавить

LOCAL_STATIC_LIBRARY: = stdc ++

в Android.mk для библиотеки sip.Это будет включать статическую библиотеку в вашу общую библиотеку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...