cocos2dx 调用java_cocos java调用C++方法

1.在 Classes目录创建Test.h 和Test.cpp

Test.h:

#ifndef _Test_

#define _Test_

#include "cocos2d.h"

#ifndef _Test_

#define _Test_

#include "cocos2d.h"

class Test

{

public:

Test();

~Test();

};

#endif // !_Test_

Test.cpp:

#include "Test.h"

USING_NS_CC;

using namespace std;

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)

#include

#include "platform/android/jni/JniHelper.h"

#include

extern "C" //org.cocos2dx.javascript

{

JNIEXPORT void JNICALL Java_org_cocos2dx_javascript_MyHelper_myFunc(JNIEnv *env, jobject thiz, jint m)

{

log("myFunc called!");

}

};

注释:

1.Java_org_cocos2dx_javascript_MyHelper_myFunc: ”Java”固定开头 ”org_cocos2dx_javascript”为包名 ”MyHelper”为对应的java文件 ”myFunc”为对应的方法 使用”_”连接

2.(JNIEnv *env, jobject thiz, jint m) 前两个为自带参数,第三个m是自定义的参数

#endif

Test::Test()

{

}

Test::~Test()

{

}

在org/cocos2dx/javascript 新建MyHelper.java:

MyHelper.java内容:

package org.cocos2dx.javascript;

public class MyHelper {

/**

* 这里是java调用cocos2d-x的地方

* @param m

*/

public static native void myFunc(int m); //native 方法

}

3.在同目录下AppActivity.java内调用如下:

public class AppActivity extends Cocos2dxActivity {

static { System.loadLibrary("cocos2djs"); } //调用前加上这句

@Override

public Cocos2dxGLSurfaceView onCreateView() {

Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this);

// TestCpp should create stencil buffer

glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);

MyHelper.myFunc(100); //此处调用

return glSurfaceView;

}

}

在android.mk 加上自己的cpp文件Test.cpp:

LOCAL_SRC_FILES := hellojavascript/main.cpp \

../../../Classes/AppDelegate.cpp \

../../../Classes/Test.cpp

正确运行后可以看到成功调用日志。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值