猴子原创,欢迎转载。转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢!
最近把IOS的项目跑到Android上,免不了使用JNI,C++掉java还是很简单的。
1、导入头文件
1
2
3
|
#include <jni.h>
#include "platform/android/jni/JniHelper.h"
|
2、实现方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
JniMethodInfo t;
if
(JniHelper::getStaticMethodInfo(t
,
"com/cocos2dev/JNIDemo/FMJNIHelp"
,
"starPayMoney"
,
"(Ljava/lang/String;Ljava/lang/String;)V"
))
{
jstring stringArg1 = t.env->NewStringUTF(
"2"
);
// $
jstring stringArg2 = t.env->NewStringUTF(
"10"
);
// count
t.env->CallStaticVoidMethod(t.classID, t.methodID, stringArg1, stringArg2);
t.env->DeleteLocalRef(stringArg1);
t.env->DeleteLocalRef(stringArg2);
t.env->DeleteLocalRef(t.classID);
}
|
注意:
1、com/cocos2dev/JNIDemo/FMJNIHelp指的是java那边需要调用的方法的类名,前面是包名。
2、(Ljava/lang/String;Ljava/lang/String;)V表示传递的参数,两个字符串。