【问题标题】:How to use .so and .h files in Android?如何在 Android 中使用 .so 和 .h 文件?
【发布时间】:2013-02-08 17:59:55
【问题描述】:

我正在使用 C++ 在 Android 中编写代码(我正在使用 cocos2d-x,特别是)。

现在,比如说,我有一个班级,MyClass,包含 .h 和 .cpp 文件。我想用这些文件创建一个 .so 。然后,我想在我的项目中包含那个 .so 并通过#include "MyClass.h" 访问它。是否可以?如果是这样,怎么做?谢谢!

【问题讨论】:

标签: android c++ android-ndk cocos2d-x


【解决方案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 领域,但如果您希望在 .so/C/C++ 代码和 Java 之间建立一座桥梁,则需要描述适当的C 中的 JNI 方法,使用映射到 JNI 方法的静态 System.loadLibrary('my_module') 导入和 native 方法声明构建必要的 Java 类。

【讨论】:

  • 嗨!感谢你的回复。使用 NDK 独立工具链非常复杂。有没有办法使用 ndk-build 构建静态库?如果有,怎么做?
  • 顺便说一句,我不会编写java代码来访问.so,只是C++。
猜你喜欢
  • 1970-01-01
  • 2018-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-29
  • 1970-01-01
相关资源
最近更新 更多