cocos2dx的jni使用

来源:互联网 发布:ubuntu怎么连接校园网 编辑:程序博客网 时间:2024/05/16 23:49

cocos2dx为了更好的调用安卓的原声函数,专门提供了对于jni的封装类——jniHelper.
这里不对jniHelper做太多的深入,这里讲解最基础的用法

  1. 添加头文件
#include "platform/android/jni/JniHelper.h
  1. getStaticMethodInfo函数
JniHelper::getStaticMethodInfo(minfo,/*JniMethodInfo的引用*/"com/***/***",/*类的路径*/"***",/*函数名*/                                "()Ljava/lang/Object;");/*函数签名*/
其中函数签名可以按照如下表格

函数签名对照表
比如void()签名就是()V
String(int)签名就是(I)Ljava/lang/Object;
注意这里String后面的分号,一定要加的
3. CallStaticVoidMethod 函数

JniMethodInfo info;    bool isHave = JniHelper::getStaticMethodInfo(info,                                            "com/***/***",/*类的路径*/"***",/*函数名*/                                "()Ljava/lang/Object;");/*函数签名*/;    jobject Obj;    if (isHave)    {        //CallStaticObjectMethod调用java函数,并把返回值赋值Obj        Obj=minfo.env->CallStaticObjectMethod(info.classID, info.methodID);    }
关于函数返回值要返回特定的值,要使用需要进行类型转换

返回值对照表

 对于非静态函数的调用
info.env->CallVoidMethod(Obj(/*非静态类对象*/), minfo.methodID, jX(/*参数*/));
0 0
原创粉丝点击