当我打电话给nativ func时,我的应用程序崩溃了。 当我构建我的本机代码时,输出为:
StaticLibrary:libstdc ++。a
SharedLibrary:libnsipjni.so
安装:libnsipjni.so =>库/ armabi / libnsipjni.so
为什么不安装静态库?怎么说Android.mk反映了静态库?我应该在我的JAVA代码中加载它吗?
谢谢, 内厄姆
答案 0 :(得分:0)
您需要先构建静态库,然后添加
LOCAL_STATIC_LIBRARY:= stdc ++
在Android.mk中为sip lib。这将包括共享库中的静态库。
答案 1 :(得分: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)