CocosCreator快速接入bugly

写在开头

bugly本身是提供了c++接入方式的,也就是说按照官方教程,其实也可以实现,但是需要改动mk文件以及文档是为CocosJS/lua准备的,所以有些不一样,而且也比较繁琐。另官方论坛中也提供了一些方法,而我从一个安卓转Cocos的程序员而言,如果有一种方式,可以直接使用安卓的接入方式就最棒了,然后就有了这个快速接入教程~

接入

安卓端修改

根据官方文档,接入完毕即可,推荐使用自动集成模式,并添加错误上报的代码

  • 如果你有其他需要暴露的接口,按照类似方式写下即可

C++代码修改

因为CocosCreator是有错误抛出接口的,我们就直接拿来用了,直接打开build/jsb-***/rameworks\runtime-src/Class/AppDelegate.cpp,在暴露的接口中,直接调用我们java层的方法(Cocos也给我们提供好了):

  • 其中第一个参数JCLS_BUGLY 是 包名+类名,注意包名使用的‘/’,比如我的:com//example/bugly/Test
  • 其中第二个参数是我在java中定义的防范,如果你直接调用官方的,比如我的是postException
  • 剩下的参数即你在java中定义的参数,注意要一一对应

快速在哪

与正常的接入相比,其实减少的工作量并不显著(似乎减少的也不少),但是这种方式依然有几点优势

  1. 减少了C++代码的操作,基本没有改动引擎,无论后续引擎以及sdk怎么升级,都可以使用
  2. 除了错误上报,其他的接口都可以使用jsb.reflection的方式接入,而无需动用c++接口
  3. 不会C++也能接

当然也有弊端

  1. 不会安卓接入要仔细看看bugly文档
  2. 安卓和ios要使用两套逻辑

博客地址

4赞

请问楼主,第一个图片是在哪个文件添加?

如果对安卓不熟悉,加载AppActivity里面就行了,然后把JSLS_BUGLY 改成“org/cocos2dx/javascript/AppActivity”

其实 原生用 window.__errorHandler h5用window.onerror, 在js层把 错误信息,玩家id,设备等信息 传给自己公司 服务端不就行啦

这怎么说了,就好比一篇告诉你接统计的文档,你回复一句,直接上报自己服务器不就好了

报错,找不到该类文件2020-11-10 12:32:15.792 10593-10620/org.cocos2dx.javascript E/JniHelper: Classloader failed to find class of org/cocos2dx/javascript/AppActivity

可以看我后面发的比较完整的一篇介绍

为啥我的js异常没上报,后台没有。bugly的debug也开了
image image

以前我也遇到过 接了没上报 结果是bugly文档是有点问题的 现在就记得要加什么.xml文件 里面要去设置网络相关的参数,你可以去网上找找解决方案