Phi*_*lip 6 c++ android android-ndk
我得到了示例HelloJni项目,它使用C文件作为本机代码.我无法使用C++获得任何简单的示例.采用以下JNI代码:
#include <jni.h>
#include <string.h>
JNIEXPORT void JNICALL Java_com_test_testActivity_doSomething(JNIEnv * env, jobject obj)
{
}
Run Code Online (Sandbox Code Playgroud)
如果我在.c文件中有代码,它可以正常工作.如果我将扩展名更改为.cpp,它编译得很好,但在运行时会爆炸(强制关闭).由于库和方法签名在任何一种方式都是相同的,我不怀疑问题是在Java端.
Mat*_*lis 10
您可能需要用extern "C"块包围代码:
extern "C" {
JNIEXPORT ...
}
Run Code Online (Sandbox Code Playgroud)
您应该能够通过将extern块包装在以下内容来创建一个适用于C和C++的版本#if:
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT ...
#ifdef __cplusplus
}
#endif
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6586 次 |
| 最近记录: |