1、腾讯Bugly简介
BuglySDK是可以上报bug到开发者后台的sdk,获取的信息可以包括用户移动设备的硬件信息(平台、系统、CPU架构、内存等各种信息)以及出错的堆栈信息。总之,这是一个可以让开发者快速获取用户端的设备信息的SDK,大大的提高了bug的修复效率。
2、注册Bugly账号
去Bugly官网注册账号获取到APPID和APPKey等信息
3、集成Bugly插件
需要准备BuglyCocosPlugin这个官网提供的插件
这里面有很多内容,包括Android和iOS两个平台,可以获取到js C++ Lua等错误,这里只介绍Cocos-Lua的插件集成以及错误捕获。
首先把bugly目录放在cocos引擎的external文件内
这里是确保可以用到CrashReport.h以及lua文件内的内容(具体要看你的项目了)
然后把agent/Android目录下面的.jar文件和BuglySDK/Android下面的.jar文件放到项目的libs目录下面。
然后我们再把libBugly.so文件放进$(PROJECT)/jni/prebuilt
具体要放那个so文件具体要看设备的CPU架构来决定,有关so文件的知识建议仔细了解一下
然后修改proj.android/jni/Android.mk文件,修改这个资源是要生成我们bugly相关功能需要的so文件,有关Android.mk文件去这里了解一下走你~。
这些makefile代码主要是新建了一个module,然后生成一个libbugly_native_prebuilt.so文件跟包一起支持Bugly的工作。
接下来我们需要在AndroidManifest.xml文件内加一些代码:
到这个地方,BuglyCocosPlugin这个插件我们已经集成在我们的项目里面了,不过最开始我们申请的APPID还没使用到,还是没法和我们的后台链接,那么这里我们来初始化一下这个插件
在Classes/AppDelegate.cpp文件的AppDelegate::applicationDidFinishLaunching()函数里面调用CrashReport::initCrashReport(const char* appId, bool debug)来对Bugly初始化。
对了,还要记得加上头文件
OK,到目前为止,完成了大部分工作,不过还剩下最后一步,就是注册错误上报函数。让我们继续
接下里修改Android.mk文件,用来支持Lua错误的捕获
$(call import-moudle,external/bugly/lua)这局代码加到最后面
并且在Classes/AppDelegate.cpp文件的AppDelegate::applicationDidFinishLaunching()函数里面调用接口BuglyLuaAgent::registerLuaExceptionHandler(...)进行初始化,并且对刚才导入的头文件进行更新
最后在lua脚本的__G__TRACKBACK__这个脚本里面调用lua错误上报的bugly接口
到这里,接入工作就结束了,不过还没有配符号表,符号表可以让错误堆栈更加人性化,这里先不提了~
最后,应用的出错信息就可以获取到了