cocos2d-x 移植android 植入计费,广告模块

陶恒原创,欢迎转载。转载请注明: 转载自csdn,谢谢!

原文地址: cocos2d-x 移植android 植入计费,广告模块_freeket的博客-CSDN博客

1.cocos2d-x 移植android植入计费、广告模块,首先要想到要从C++调用java模块,C++调用java很简单使用JNI

  1.1 首先要确认调用的java代码存在(android项目的src目录下,还没有就自己创建)

参考:http://www.cocos2dev.com/?p=151

1、导入头文件

1#include <jni.h>
2
3#include "platform/android/jni/JniHelper.h"

2、实现方法:

01JniMethodInfo t;
02
03if(JniHelper::getStaticMethodInfo(t
04
05,"com/cocos2dev/JNIDemo/FMJNIHelp"
06
07,"starPayMoney"
08
09,"(Ljava/lang/String;Ljava/lang/String;)V"))
10
11{
12
13jstring stringArg1 = t.env->NewStringUTF("2");// $
14
15jstring stringArg2 = t.env->NewStringUTF("10"); // count
16
17t.env->CallStaticVoidMethod(t.classID, t.methodID, stringArg1, stringArg2);
18
19t.env->DeleteLocalRef(stringArg1);
20
21t.env->DeleteLocalRef(stringArg2);
22
23t.env->DeleteLocalRef(t.classID);
24
25}

注意:

C++这边请注意一下c++这边方法申明的命名规则,JNIDemo表示java那边方法所在类名,com_cocos2dev_test_该类的包名。nativePaySuccess方法名。

参数规则参考:http://zzqrj.iteye.com/blog/1285262

2.计费成功之后很自然的想到要把结果反馈回来,所以用到java调动C++

参考:http://www.cocos2dev.com/?p=149

假设java这边我需要调用C++那边的函数void PaySuccess(int type);

1、在java这边申明

1privatestatic native voidnativePaySuccess(inti);

调用时,

1nativePaySuccess(1);

这样java会调用到C++那边。

2、C++那边实现该方法:

01#include <jni.h>
02
03extern"C"
04
05{
06
07voidJava_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}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值