我正在使用C ++在Android中编码(我特别使用cocos2d-x)。
现在,比方说,我有一个类MyClass
,带有.h和.cpp文件。我想从这些文件中创建一个.so。然后,我想在我的项目中包含.so并通过#include "MyClass.h"
访问它。可能吗?如果是这样,怎么样?谢谢!
答案 0 :(得分:1)
要为ARM构建静态库,可以使用NDK standalone toolchain。
编译完.so
后,可以使用Android NDK make file(Android.mk)将库包含在项目中,如下所示:
LOCAL_PATH := $(call my-dir)
LOCAL_SRC_FILES := my_module.so
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)
您需要确保在正确的路径中包含标题(/ include)。
不确定您是否打算使用您的代码重新使用Android-land,但如果您希望在.so / C / C ++代码和Java之间建立桥梁,则需要描述相应的C中的JNI方法使用映射到JNI方法的静态System.loadLibrary('my_module')
导入和native
方法声明构建必要的Java类。