cocos2dx 之 android java 与 c++ 互相调用 代码(以百度定位为例子)

在作cocosdx项目移植到android上时,预见各种头痛问题,今天首先就说说如何在 java 中调用c++ 代码。

这里就用百度定位为例吧,也是我项目中的一小块内容。首先,先百度一下 “百度定位sdk”的相关内容,

根据 百度定位SDK 中的提示在java 代码中加入api,本篇就用 Location.java和

MHGPSTools.cpp 俩个类之间进行互相调用。

首先 在Location.java 中 定义需要c++ 中调用的方法:

cocos2dx 之 android   java 与 c++ 互相调用 代码(以百度定位为例子)

而在MHGPSTools.cpp中

cocos2dx 之 android   java 与 c++ 互相调用 代码(以百度定位为例子)

注意上面代码中蓝色着重的方法名,此外该方法所带的参数,我们只需要注意后面两位,次参数的个数依据我们

在Location.java中的定义而决定,最后记住得释放 info,temp info2,temp2,写好以上方法后,在java代码调用

c++ 代码如下:

SendLocationGPS(String.valueOf(location.getLatitude()),String.valueOf(location.getLongitude())); //BDLocation location

接着我们在说说才c++ 中调用 java,同样是Location.java和MHGPSTools.cpp两个类,在.cpp中添加头文件

#include<jni.h>、#include"platform/android/jni/JniHelper.h" 然后接着定义方法StarUpdatePosition()

用来调用java 代码,如下:

cocos2dx 之 android   java 与 c++ 互相调用 代码(以百度定位为例子)

在.java中 定义静态方法 public static void SendStartLocationGPSReq() 保持命名一致,这样就可以在c++ 中调用 StarUpdatePositio()

来实现调用.java 中SendStartLocationGPSReq() 方法。

上一篇:深入理解定时器系列第一篇——理解setTimeout和setInterval


下一篇:我终于搞懂了时间……(C# 中时间类型(DateTime) 时间戳(Unix时间戳)互转)