«

cocos2dx:C++层通过JniHelper调用JAVA层代码进而调用Android手机应用接口

时间:2024-3-2 17:58     作者:韩俊     分类: Android


首先记录android打包主线流程(Windows平台,cocos2dx-3.6)

首先我们采用官方推荐的方法生成项目 cocos new xxx -p xxx.xxx.xxx -l xxx -d xxx

接着我们需要下载很多东西(当然以下这些肯定也是依照个人环境及需求去下载,仅有jdk是需要安装的,请配置环境变量):

都可以在这个链接中下载:http://www.androiddevtools.cn/

adt-bundle-windows-x86_64-20140702

android-ndk-r9d-windows-x86_64

apache-ant-1.9.4-bin

jdk-8u5-windows-x64

还记得你执行cocos2dx目录中的setup.py脚本时skip的那些 ROOT 目录指向吗?这里把上面的压缩包一一解压,再次执行setup.py脚本,建议先命令行打开cocos2dx目录,再执行setup.py脚本文件,这样你就可以粘贴了。SDK是在 adt-bundle 里面的,还有一点需要注意的是ANT_ROOT指向apache-ant-1.9.4-bin目录里的bin文件夹。

当然你的程序不可能一成不变,这里就要手动改一下 proj.androidjniAndroid.mk 文件,直接搜索../../Classes/AppDelegate.cpp ,依次写上你所有的cpp源码文件。

接下来就是编译了,打开命令行,进入proj.android文件夹,执行cocos compile -p android -j 4,-p指的是 android平台,-j好像是起多少个任务线程(不清楚),当然你若想深入学习了解的话,大可以执行cocos compile -h进而查看帮助。

若是一切顺利的话,proj.androidbin目录下或proj.android同级bin目录下,都应该已经有apk文件啦。

接下来记录android真机调试流程

右键项目-debug as-android application,若是此时电脑已经连接手机的话,请确保打开 开发者选项-usb调试,eclipse弹出界面就可以直接选择你的手机进行调试。若是你手边没有android手机,想尝试一下非真机调试(万万不推荐),跟着提示流程创建就不说了,你可能会缺少一项:CPU/ABI,不知道该选择什么,网上说的怎样怎样通过eclipse下载,那肯定是没有问题,这里我再提供一个下载方法,直接在上面提到的那个网址下载,按照说明操作一下就可以了,至少会很快。

这里就到最关键的地方啦,因为我写的是一个能简单打电话的程序,如何调用Android手机应用接口将成为重点,C++层调用JAVA层也成了拦路虎

这先说一下C++层调用JAVA层相关知识,首先你看一下这篇文章:http://xiaominghimi.blog.51cto.com/2614927/908804,我将在它的基础上展开说明,说的都是我一点一点尝试出来的。

JniHelper::getStaticMethodInfo(minfo, "org/cocos2dx/cpp/AppActivity", "callNumber", "(Ljava/lang/String;)V");

public void callNumber(String uriString) {

}


若是你按着示例来写自己的,得到的结果肯定是程序崩溃,你难道不想想那四个参数分别是什么都一切照搬吗?(我就是这样的),第四个参数虽然最复杂,但是人家讲得也很明白的,类的路径最难发现其中的猫腻,若是你用推荐方法创建的项目的话,那里应该填AppActivity.java的路径,即是org/cocos2dx/cpp/AppActivity。这是第一个需要说明的地方,第二个说明的地方即是(Ljava/lang/String;)V括号里面的分号,这个我真的说不了什么,这是我试出来的,我这里没有错。



标签: android

热门推荐