在安卓jni(cocos2dx)开发上同事给挖了个大坑

我们公司是做手机游戏开发的一个小公司,而挖这个坑的同事已经被辞退了--试用期没有通过。

反正是一个神神叨叨的人,工作7年了,编程能力跟毕业1年的差不多,svn没用过,教了N次,还是不会用,有bug了,第一句话是:不是我弄的。

就吐槽到这里了,下面说说问题:


安卓一运行程序,立即退出。而在ios上运行正常。看了死机堆栈,是在ndk的jni.h里面。然后继续看堆栈,发现是给c++的静态成员赋初值引起的。仔细一看,这个赋初值的地方,是调用了cocos2dx引擎的一个方法,而这个方法会调用到jni相关代码。大家发现问题了没有,如果没有我接着讲,静态成员赋初值执行的比jni_load()要早,而在jni_load()还没调用的时候,如果先调用了jni方法,那么由于jni还没有初始化好,那么程序必然就崩溃了!


再次提醒大家,注意代码编写规范,别在函数外面给成员赋初值的地方调用一些自己都不知道如何执行的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值