Cocos2dx3.5学习之Bugly对接笔记
最近刚刚入职,主管让我学习下一些基础,之后就让我去学着对接腾讯出品的Bugly,一个异常崩溃上报SDK,这里总结了
- Bugly的后台使用
-
Cocos 对接常见问题
- Bugly符号表配置参考
-
官网文档
https://bugly.qq.com/docs/ -
Bugly后台使用指南
对应各个接口,一开始刚对接对于上报的信息在哪查看一脸懵逼,所以就总结了一下,希望对新手有所帮助- 异常上报查看:左边菜单_>错误分析
-
setUserId(const char* userId)
设置用户唯一标识 -
-
void setAppChannel(const char* channel)
设置App的渠道,初始化方法之前调用设置有效
但是安卓那里试了,可以在初始化之后设置 -
-
setAppVersion(const char* version)
设置App的版本,初始化方法之前调用设置有效 -
-
void reportException(int category, const char type, const char msg, const char* traceback)
上报自定义异常 -
-
setTag(int tag)
设置自定义标签-
先配置标签
-
然后才能用这个标签
-
先配置标签
-
void addUserValue(const char key, const char value)
设置用户自定义数据 -
-
void removeUserValue(const char* key)
删除用户自定义数据- 同上
-
void log(CrashReport::CRLogLevel level, const char* tag, const char * fmt, ...)
自定义日志打印接口 -
-
Cocos 对接
-
参考:Bugly Cocos Plugin 使用指南
https://bugly.qq.com/docs/user-guide/instruction-manual-plugin-cocos/?v=20170912151050 - Cocos IOS
- Cocos 安卓
-
Cocos Lua 对接
-
lua绑定更多C++接口
-
先在BuglyLuaAgent.h声明
-
-
在BuglyLuaAgent.cpp封装对C++接口的调用
-
-
然后注册到Lua层
-
-
先在BuglyLuaAgent.h声明
-
lua异常捕获缺失问题
- 有些函数:MainScene:ctor 没法在lua层捕获异常
-
解决办法
-
代码
- local function main(...)
- require("app.MyApp").new():run()
- end
- xpcall(main,__G__TRACKBACK__)
- xpcall 是lua捕获异常的函数,在Cocos2dx-lua的空白项目里有用这个
- 我试了一下在main.lua做了这样的修改,可以让MainScene:ctor函数出错可以通过__G__TRACKBACK__
- 关于xpcall参考
-
代码
-
lua绑定更多C++接口
-
参考:Bugly Cocos Plugin 使用指南
- Bugly符号表配置
-
常见问题
-
APPID
- IOS和安卓的都需要独立开来,各用各的
-
安卓
-
ADT的问题
-
报错:[ExtraCrashManager] crash manager has not been init```
- 这是mumu模拟器的问题,卸载了应用重新安装应该就可以了
-
没法初始化
-
需要
-
需要
-
报错:[ExtraCrashManager] crash manager has not been init```
-
ADT的问题
-
IOS
- 设置渠道号需要在Bugly初始化之前,但是安卓的却不用,这个还没有解决办法
-
开启自定义日志上报
-
void initCrashReport(const char* appId, bool debug, CrashReport::CRLogLevel level)
设置第三个参数,日志的等级,默认为-1 不上报 -
Cocos lua示例
-
代码
-
C++代码
- // 初始化Bugly的sdk
- CrashReport::initCrashReport("e62439f557", true,CrashReport::CRLogLevel::Verbose);
-
Lua代码
- local log = "abcsd"
- --int, level - which value is 0=Verbose, 1=Debug, 2=Info, 3=Warn, 4=Error
- BugHelper.SetLog(4,"00",log)
-
C++代码
-
代码
-
void initCrashReport(const char* appId, bool debug, CrashReport::CRLogLevel level)
-
APPID