當我調用一個nativ func時,我的應用程序崩潰。 當我建立我的本機代碼的輸出爲:Android NDK和靜態庫
STATICLIBRARY:++的libstdc一個
SharedLibrary:libnsipjni.so
安裝:libnsipjni.so =>庫/ armabi/libnsipjni.so
爲什麼不安裝靜態庫? Android.mk如何渲染靜態庫?我應該加載它在我的JAVA代碼?
謝謝,那鴻
當我調用一個nativ func時,我的應用程序崩潰。 當我建立我的本機代碼的輸出爲:Android NDK和靜態庫
STATICLIBRARY:++的libstdc一個
SharedLibrary:libnsipjni.so
安裝:libnsipjni.so =>庫/ armabi/libnsipjni.so
爲什麼不安裝靜態庫? Android.mk如何渲染靜態庫?我應該加載它在我的JAVA代碼?
謝謝,那鴻
您需要首先建立自己的靜態庫,然後添加
LOCAL_STATIC_LIBRARY:= STDC++
在Android.mk用於SIP庫。這將在共享庫中包含靜態庫。
你能指定你到目前爲止?你在使用方法表嗎?上,如果靜態庫心不是限定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)
它構建靜態庫atomaticaly,可以使用更多的Android.mk – nmnir