我们公司是做手机游戏开发的一个小公司,而挖这个坑的同事已经被辞退了--试用期没有通过。
反正是一个神神叨叨的人,工作7年了,编程能力跟毕业1年的差不多,svn没用过,教了N次,还是不会用,有bug了,第一句话是:不是我弄的。
就吐槽到这里了,下面说说问题:
安卓一运行程序,立即退出。而在ios上运行正常。看了死机堆栈,是在ndk的jni.h里面。然后继续看堆栈,发现是给c++的静态成员赋初值引起的。仔细一看,这个赋初值的地方,是调用了cocos2dx引擎的一个方法,而这个方法会调用到jni相关代码。大家发现问题了没有,如果没有我接着讲,静态成员赋初值执行的比jni_load()要早,而在jni_load()还没调用的时候,如果先调用了jni方法,那么由于jni还没有初始化好,那么程序必然就崩溃了!
再次提醒大家,注意代码编写规范,别在函数外面给成员赋初值的地方调用一些自己都不知道如何执行的方法。