2011-07-14 101 views
0

當我調用一個nativ func時,我的應用程序崩潰。 當我建立我的本機代碼的輸出爲:Android NDK和靜態庫

STATICLIBRARY:++的libstdc一個

SharedLibrary:libnsipjni.so

安裝:libnsipjni.so =>庫/ armabi/libnsipjni.so

爲什麼不安裝靜態庫? Android.mk如何渲染靜態庫?我應該加載它在我的JAVA代碼?

謝謝,那鴻

回答

0

您需要首先建立自己的靜態庫,然後添加

LOCAL_STATIC_LIBRARY:= STDC++

在Android.mk用於SIP庫。這將在共享庫中包含靜態庫。

+0

它構建靜態庫atomaticaly,可以使用更多的Android.mk – nmnir

0

你能指定你到目前爲止?你在使用方法表嗎?上,如果靜態庫心不是限定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) 
相關問題