近期在研究cocos2d游戏移植安卓须要调用非常多方法。所以在研究之中写下它们之间相互调用

首先,cocos2d调用安卓

在一个.h文件里加入头文件

#include <jni.h>

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

JniMethodInfo minfo;//定义Jni函数信息结构体

//getStaticMethodInfo 次函数返回一个bool值表示是否找到此函数

bool isHave = JniHelper::getStaticMethodInfo(minfo, "com/zhangying/jni/applay", "testFunWithStringAndRtn", "(I)V");

com/zhangying/jni/applay參数为调用安卓中的类的全路径。

testFunWithStringAndRtn为类中要调用的方法

(I)V  返回值和传入參数的类型

jobject jobj;

if (!isHave) {

CCLog("不存在");

}

else{

CCLog("存在");

//调用此函数

jobj = minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID, this->choiceMoney);

// ReadData::setUserDefaultInt("RECHARGE", this->choiceMoney);

}

完毕以上步骤就能够測试cocos2d调用安卓中的代码了

然后安卓调用cocos2d

首先在项目中找到jni中的hellocpp中的main.cpp

在当中增加

#include <android/log.h>

#include "data/ReadData.h"





#define  LOG_TAG    "main"

#define  LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)





using namespace cocos2d;

void cocos_android_app_init (JNIEnv* env, jobject thiz) {

    LOGD("cocos_android_app_init");

    AppDelegate *pAppDelegate = new AppDelegate();

}

一下代码是自己增加的 上面的一些自带的不用改动

extern "C"

{

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)

void Java_com_yiqu_mobilesdk_iap_IAPOrder_callbackMobiles(JNIEnv *env, jobject thiz)

{





CCLog("測试是否进入");



}

#endif

}

注意:

Java_com_yiqu_mobilesdk_iap_IAPOrder_callbackMobiles这个名字不是随便定义的

Java是固定的com.yiqu.mobilesdk.iap是包名 IAPOrder是类名字,callbackMobiles是你要调用的方法名字

这样就写成了这种方法

在你要调用cocos2d的java类中写上要调用的方法名字 写法例如以下

public native static void callbackMobiles();  名字随便定义,可是native不能丢掉

然后在该类中直接调用callbackMobiles()

就能够直接进入到CCLog("測试是否进入");中了

哈哈 结束了,这是本人正在用的游戏中支付的一块代码调用,执行都正常,如有不好的地方望指出

也可进入群:252799892  大家一起交流

假设感觉对你有帮助给个评价

关于cocos2d-x 和安卓之间的相互调用的更多相关文章

  1. JAVA和C/C++之间的相互调用。

    在一些Android应用的开发中,需要通过JNI和 Android NDK工具实现JAVA和C/C++之间的相互调用. Java Native Interface (JNI)标准是java平台的一部分 ...

  2. C 程序与 C++ 程序之间的相互调用

    因为 C 编译器编译函数时不带参数的类型信息,只包含函数的符号名字.如 void foo( int x ) , C 编译器会将此函数编译成类似 _foo 的符号,C 链接器只要找到了调用函数的符号,就 ...

  3. C#与Javascript变量、函数之间的相互调用

    原文地址:http://blog.csdn.net/wonsoft/article/details/2595743 C#与Javascript变量.函数之间的相互调用  一.javascript调用C ...

  4. uLua学习笔记(三):Unity3D和Lua之间的相互调用

    这篇笔记主要集中学习一下uLua和Unity3D之间相互调用的方法,我们导入了uLua之后,现在会弹出一个类似学习屏幕的东西,如下: 先赞一个! Unity3D调用Lua Unity3D调用Lua的方 ...

  5. Iframe父页面与子页面之间的相互调用

    iframe元素就是文档中的文档. window对象: 浏览器会在其打开一个HTML文档时创建一个对应的window对象.但是,如果一个文档定义了一个或者多个框架(即:包含一个或者多个frame或者i ...

  6. 两个java工程之间的相互调用方法

    如果你有两个java项目的话,如何向他们之间进行信息的通信前提:必须知道要通信的java项目(接收请求方)的服务器的IP地址和访问路径.其实两个java项目之间的通信还是使用HTTP的请求.主要有两种 ...

  7. 032 搭建搜索微服务01----向ElasticSearch中导入数据--通过Feign实现微服务之间的相互调用

    1.创建搜索服务 创建module: Pom文件: <?xml version="1.0" encoding="UTF-8"?> <proje ...

  8. 关于ifram之间的相互调用

    window.iframeId.btnClose.click(); 父调子 window.parent.FatherFunciton(); 子调父

  9. Unity与iOS原生代码之间的相互调用

    1.Unity调用iOS: 1.1.在Unity C#中: [ DllImport( "__Internal" )] private static extern int _show ...

随机推荐

  1. nginx进行项目域名配置时提示Job for nginx.service failed

    ps aux | grep nginx /bin/systemctl stop nginx.service /bin/systemctl start nginx.service /bin/system ...

  2. WebService 序列化和反序列化

    参考了Fish LI的Xml读取文章,写了XML序列化和反序列化的文章. 序列化:把实体列转化成XML.反序列化:把XML按一定的规则转化成需要的实体列. 序列化和反序列化化使用到的类, using ...

  3. 水晶报表 IE设置

    水晶报表:Crystal Reports(水晶报表)是一款商务智能(BI)软件,主要用于设计及产生报表.水晶报表是业内最专业.功能最强的报表系统,它除了强大的报表功能外,最大的优势是实现了与绝大多数流 ...

  4. BZOJ 2813: 奇妙的Fibonacci

    2813: 奇妙的Fibonacci Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 497  Solved: 134[Submit][Status][ ...

  5. KMP--君住长江头,我住长江尾,日日思君不见君,共饮长江水

    POJ 3461: Oulipo 题意: 求出第一个串在第二个串中的出现次数... 分析: KMP板子题... 代码: #include<algorithm> #include<io ...

  6. 怎样在SQL2005中设置 自增长类型?

    原文发布时间为:2009-04-25 -- 来源于本人的百度文章 [由搬家工具导入] 最近好几个人问我。。。。。 企业管理器-->右键你的表-->设计表-->选中一int类型字段-- ...

  7. my conclusion about time planing and requirement changes.

    How to estimate time when requirement changes or is added: my principle: never say so easy, at least ...

  8. Linux STP介绍

    1. 介绍 STP(Spanning Tree Protocol)即生成树协议,标准为IEEE802.1D-1998STP是一种二层冗余技术,利用STA算法构建一个逻辑上没有环路的树形网络拓扑结构,并 ...

  9. springBoot Json

    pom 加json配置 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson ...

  10. SSH架构BaseDao实现

    package cn.itcast.dao; import java.io.Serializable; import java.util.List; /** * BaseDao * @author A ...