gpt4 book ai didi

c++ - 使用安卓 NDK 和 C++

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:36:00 25 4
gpt4 key购买 nike

我让示例 HelloJni 项目正常运行,它使用 C 文件作为 native 代码。我无法获得任何使用 C++ 的简单示例。采用以下 JNI 代码:

#include <jni.h>
#include <string.h>

JNIEXPORT void JNICALL Java_com_test_testActivity_doSomething(JNIEnv * env, jobject obj)
{

}

如果我在 .c 文件中有代码,它可以正常工作。如果我将扩展名更改为 .cpp,它可以正常编译,但在运行时会崩溃(强制关闭)。由于库和方法签名是相同的,所以我不怀疑问题出在 Java 端。

最佳答案

您可能需要用 extern "C" block 包围您的代码:

extern "C" {

JNIEXPORT ...

}

通过将 extern block 包装在 #if 中,您应该能够制作一个适用于 C 和 C++ 的版本:

#ifdef __cplusplus
extern "C" {
#endif

JNIEXPORT ...

#ifdef __cplusplus
}
#endif

关于c++ - 使用安卓 NDK 和 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5292190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com