簡體   English   中英

Android NDK 和 Static 庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM