[英]Android NDK and Static Library
當我調用 nativ 函數時,我的應用程序崩潰了。 當我構建我的本機代碼時,output 是:
靜態庫:libstdc++.a
共享庫:libnsipjni.so
安裝:libnsipjni.so => libs/armabi/libnsipjni.so
為什么不安裝 static 庫? Android.mk 如何反映 static 庫? 我應該在我的 JAVA 代碼中加載它嗎?
謝謝,那鴻
你能具體說明你到目前為止得到了什么嗎? 你在使用方法表嗎?
android.mk 上的示例如果 static 庫未定義,首先創建一個包含 static 庫的模塊,如果使用 make stdc++,則可以跳到下一部分:
#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)
您需要先構建您的 static 庫,然后添加
LOCAL_STATIC_LIBRARY:= stdc++
在 sip 庫的 Android.mk 中。 這將在您的共享庫中包含 static 庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.