cocos lua调用java_【Tech-Lua】Cocos-2dx-Lua调用java的小白教程(三)

上周五下班前,打包成功了。我很高兴,周六去踢场足球,周日去现场看了最后一分钟掉球的恒大,度过了一个愉快的周末。然后,噩梦的周一开始了。

我再次打包,打算打包就安装,但结果是失败的。为何?我周五明明成功了,为何又失败了?我又打了一次,结果就是还是失败,原因是用了其他工程打包,而非目标的那个工程。嚓···这个明显就是坑我自己。!@@!

又过了一整天了,其中又发生了一件很奇怪的事情。

当我选择 android-23进行打包工程的时候,可以打包成功,可是运行失败,报了.so文件构建错误的Exception。

我把这个cocos-Lua工程翻了一个遍。

开始的时候,不断地说我们没有定义引入Cpp中的方法。

我重新把所有的Android.mk文件全部查看了一遍。重新认识了mk文件的所有定义。

Android.mk文件属性定义。

然后我发现,其中一个我修改的mk文件写错了。

就是

\frameworks\cocos2d-x\cocos\scripting\lua-bindings\proj.android\Adnroid.mk

其中:c463dbce650544298fa1bd6eeadbdc76.png

以上可以知道,把lua_HNLuaTest_auto.cpp加入到这个模块中进行编译。

我的错误在于:

e5c6938a3be4407a9919a9c0668f3bc1.png

这个LOCAL_STATIC_LIBRARIES可以知道,其引入了之前Park/android.mk编译的静态库,其中这里的LOCAL_STATIC_LIBRARIES的名称必须与Park/android.mk定义的模块名称一致,否则就连接到之前编译的Park静态库.

(之前的错误就是这样引起的。!@@!)

再打包apk一次,显然,成功了。

运行,没事~!

为了验证可以,我就去修改AppDelegate.cpp。在他们的方法中加入一句log看看。

fb3cb388cda646f4af23d27efa974248.png

再打包一次apk,运行到手机中,恩·!看到log了。

这下安心了,那么就继续往下走吧,到下一步,lua中调用这个C++类。

由于之前我们在auto/api/已经生成了lua_HNLua_auto.lua文件,根据上文提到的文章,Android平台的引入。

1.先把这个lua文件zip压缩。

2.把它引入到cocos code IDE工程中。如图:

805613465d484262b07bad4fee202a19.png

3.在lua工程中引入Test类。

032dec5f4faf4ee6a68b73b94ab86bd9.png

4.在cocos - IDE 中运行工程。

经过一天的摧残,你至少要懂得几个知识点:

1.mk文件的属性作用

2.lua打包android的apk的过程

3.cocos Lua工程的结构 ,其中它存在了相当多的引入,各个文件包引入相当乱一定要理顺。所以以下总结一下 这几天的所经历的步骤。

1.在工程的cocos文件夹中新建c++文件,为何在这个cocos文件夹中?

2.在这个自建的C++文件夹中新加入Android.mk文件,将它编译成一个模块

3.在tolua工具文件夹中运行修改好了py脚本,新构建hpp文件,存放在auto文件下面。

4.修改/scripting/lua-binding/pro.android/android.mk 把c++的模块加入编译。

5.在工程的入口文件,注册好C++类。

#include “../auto/lua_HNLuaTest_auto.hpp”

register_all_HNLuaTest(L);

6.压缩生成好的lua文件,在cocosIDE工程中引入

7.在Lua工程中调用这个C++类。

其中每一个步骤都不能有点儿的出错,因为出错的话,错误难找,也难解。

最后付上我的工程例子:

CocosLuaWithCpp3

PS:工程有点大,已经压缩了,这个你们要怪cocos-IDE了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/345131.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

github上java项目_GitHub上10,000个最受欢迎的Java项目-以下是他们使用的顶级库

github上java项目随着Java开发人员使用既成熟又高度发展的语言来工作,无论何时编写新代码,我们都将面临一个持续的困境–使用大家都在谈论的热门新技术,或者坚持使用久经考验的库? 由于Java应用程序的很大一部分是商业性质的&…

【渝粤题库】陕西师范大学202071 统计学 作业(专升本、高起本)

《统计学》作业 一、单项选择题 1.对于占全国彩电总产量绝大比重的彩电企业进行生产基本情况全面调查这是( )   A、典型调查  B、普查    C、重点调查 D、抽样调查 2.某地进行国有商业企业经营情况…

【渝粤题库】陕西师范大学202861 发展心理学 作业(专升本)

《发展心理学》作业 一、名词解释 发展心理学正强化心理社会的合法延缓期复演说负强化学习障碍图式溶血症抓握反射应答性行为观察学习多动症 二、填空题儿童动作发展的顺序是(  )、 ( )、从大肌肉到小肌肉。(  &…

char java 回文_LeetCode刷题笔记(Java)---第1-18题

题目来自LeetCode文章目录全部章节1-18题19-40题41-60题61-80题81-100题101-120题121-140题1.两数之和2.两数相加3.无重复字符串的最长子串4.寻找两个有序数组的中位数5.最长回文子串6.Z 字形变换7.整数反转8.字符串转换整数 (atoi)9.回文数10.正则表达式匹配11.盛最多水的容器…

使用PostgreSQL使用Spring Boot和JPA构建基本应用

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。 每个不平凡的应用程序都需要一种保存和更新数据的方法:可通过HTTP访问的资…

【渝粤题库】陕西师范大学210001儿童心理学 作业(高起专、高起本)

《儿童心理学》作业 一、填空 1、研究儿童心理必须遵循的原则是______ 、 _______ 、。 2、新生儿最基本的无条件反射是 、 ________ 、。 3、学前儿童掌握实物概念的特点是以_______为主,以_______为主。 4、感觉既是一种______现象,又是一种_______现象…

【渝粤题库】陕西师范大学210033 劳动法与社会保障法作业

《劳动法与社会保障法》作业 一、单项选择题 1.职工李某1985年8月进某皮鞋厂工作,二年后因失恋精神失常,经当地区精神病防治院诊断为精神分裂症,并经住院治疗,以后也常有病假。1995年9月李某以要调换新单位为由申请辞职。在单位制…

【渝粤题库】陕西师范大学292969 会计学 作业 (专升本、高起本)

陕西师范大学 内 部 题 库 教育 (yuyueshool) 编制 《会计学Ⅱ》作业 一、名词解释 1、会计核算 2、会计主体 3、可比性 4、会计监督 5、持续经营 6、一致性 7、复式记账 8、会计期间 9、谨慎性 10、财产清查 11、权责发生制 12、流动资产 二、填空 1、…

百分制转化为五级制java_javav 的日志-编写存储过程,将百分制成绩,转换成绩等级’A’,’B’,’C’,’D’,’E’...

要求;存储过程要有输入和输出create procedure chengji( in n int , out result varchar )begindeclare result varchar(20);set ntruncate(rand()*100,0);casewhen n>90 thenset resultA;when n>80 thenset resultB;when n>70 thenset resultC;when n&…

guava 并发_使用Guava对并发应用程序进行基于对象的微锁定

guava 并发编写并发Java应用程序时最令人讨厌的问题之一是对线程之间共享的资源的处理,例如Web应用程序的会话和应用程序数据。 结果,如果应用程序的并发级别很低,许多开发人员选择根本不同步这些资源。 例如,不太可能同时访问会话…

【渝粤题库】陕西师范大学500001 理论力学 作业(专升本)

《理论力学》作业 一. 填空 在平面极坐标系中,速度的径向分量为______ ,横向分量为_____,加速度的径向分量为_____,横向分量为_____。在平面自然坐标系中,的方向为______,,质点的切向加速度为_…

java数组按照大小排列_Java怎么让数组中元素按照牌值从小到大的顺序排列

展开全部你说的这些牌是用数组来存放的,所以有些麻烦。直接复制运行,更改牌的62616964757a686964616fe58685e5aeb931333332643838数量测试,有不懂的再问我package test;import java.util.Arrays;import java.util.Random;public class DaoTes…

【渝粤题库】陕西师范大学700005 遗传学

《遗传学》作业 一、名词解释 1.杂种优势 2. 外显率 3.罗伯逊易位 4.上位效应   5.互补测验 6.表现度 7.平衡…

通过示例了解Apache Ignite Baseline拓扑

点燃基准拓扑或BLT表示群集中的一组服务器节点,这些服务器节点将数据持久存储在磁盘上。 其中,N1-2和N5服务器节点是具有本机持久性的Ignite集群的成员,这些集群使数据能够持久存储在磁盘上。 N3-4和N6服务器节点是Ignite群集的成员&#x…

国家开放大学2021春1032成本管理题目

教育 教育 试卷代号: 1032 2021年春季学期期末统一考试 成本管理 试题 2021年7月 一、单项选择题(本类题共20分,每小题2分) 1.交互分配法一般在( )分配中使用。 A.直接材料费用 B.辅助生产费用 C.直接工资 D.在产品成本 2.采用品…

java synchronized 参数_synchronized 参数的理解

synchronized 是java中用来同步的方法,详细的就不介绍了。synchronized的用法为:synchronized(锁){代码块}这个锁是什么呢,我看了很多说法但没有一个能讲清楚的。通过一段时间的使用后逐渐发现了一些synchronized使用的规律使用synchronized是…

Spring Boot集成测试中@ContextConfiguration和@SpringApplicationConfiguration之间的区别

即使同时使用ContextConfiguration和SpringApplicationConfiguration批注以及SpringJUnit4ClassRunner来指定如何加载Spring应用程序上下文,它们之间也存在细微的差异。 尽管ContextConfiguration在加载应用程序上下文方面表现出色,但没有充分利用Spring…

【渝粤题库】广东开放大学 秘书理论与实务 形成性考核

👉关注我,看答案👈 选择题 题目:秘书的职责之一是服从上级,既然秘书要服从上级,那么即使发现上级有错误时也不能指出来。 题目:权利人对产品设计、工艺流程、配方、质量管理等方面的技术信息采取保密措施属…

【渝粤题库】广东开放大学 数据库技术安全 形成性考核

选择题 题目:6-1、与大数据密切相关的技术是()。 题目:6-2、大数据应用需依托的新技术有()。 题目:6-3、以下哪个不是大数据的特性()。 题目:6-4、下列哪一项…

【渝粤题库】广东开放大学 PHP动态网站设计 形成性考核

选择题 题目: PHP 服务器脚本由_________分隔符包围? 题目: 下列说法不正确的是____________。 题目: PHP是一种跨平台、____________的网页脚本语言。 题目: PHP网站可称为____________。 题目: PHP…