在作cocosdx项目移植到android上时,预见各种头痛问题,今天首先就说说如何在 java 中调用c++ 代码。
这里就用百度定位为例吧,也是我项目中的一小块内容。首先,先百度一下 “百度定位sdk”的相关内容,
根据 百度定位SDK 中的提示在java 代码中加入api,本篇就用 Location.java和
MHGPSTools.cpp 俩个类之间进行互相调用。
首先 在Location.java 中 定义需要c++ 中调用的方法:
而在MHGPSTools.cpp中
注意上面代码中蓝色着重的方法名,此外该方法所带的参数,我们只需要注意后面两位,次参数的个数依据我们
在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 代码,如下:
在.java中 定义静态方法 public static void SendStartLocationGPSReq() 保持命名一致,这样就可以在c++ 中调用 StarUpdatePositio()
来实现调用.java 中SendStartLocationGPSReq() 方法。