最近项目中涉及到Android的移植,要用到java调用c++,方法其实也很简单。
假设java这边我需要调用C++那边的函数void PaySuccess(int type);
1、在java这边申明
1
|
private
static
native void
nativePaySuccess( int
i);
|
调用时,
1
|
nativePaySuccess(1);
|
这样java会调用到C++那边。
2、C++那边实现该方法:
01
|
#include
<jni.h>
|
02
|
03
|
extern
"C"
|
04
|
05
|
{
|
06
|
07
|
void
Java_com_cocos2dev_test_JNIDemo_nativePaySuccess(JNIEnv* env, jobject thiz,jint a)
|
08
|
09
|
{
|
10
|
11
|
//这里java调用nativePaySuccess(1);,这里就会被调用。jint
a = 1
|
12
|
13
|
}
|
14
|
15
|
}
|
注意:
C++这边请注意一下c++这边方法申明的命名规则,JNIDemo表示java那边方法所在类名,com_cocos2dev_test_该类的包名。nativePaySuccess方法名。