Crash上报
Unity3D
概述
接入向导
查看数据
上报额外业务日志
上报额外二进制数据
上报输出日志
动态关闭bugly上报
常见问题
Android
概述
接入向导
查看数据
上报额外业务日志
上报额外二进制数据
上报输出日志
动态关闭bugly上报
常见问题
IOS
概述
接入向导
查看数据
上报额外业务日志
上报额外二进制数据
上报输出日志
动态关闭bugly上报
常见问题
其他
数据结构
系统工具
Crash上报 / Unity3D / 概述

概述

MSDK集成了Bugly的数据上报功能,能够将客户端crash时客户端的信息上传到服务器,供开发者查看。 能帮助开发者发现应用在线上的致命bug。

显示详情

接入向导

MSDK 3.3.30 版本开始,Bugly 以插件化形式提供,业务可按需合入。如果不需要,可按照对应路径删除即可。

插件路径

  • Deploy 面板新增 USE MSDKBugly 插件开关,如使用需勾选
  • Unity 64位 的包,如果不使用 Bugly,则需要在脚本里自行添加删除 64位 Bugly so 的逻辑,或者到目录里将 64 位的 Bugly so 删掉(路径:MSDKForUnity/Assets/Plugins/Android/msdkLibrary/libs/对应的架构文件夹/libBugly_Native.so)

1 前置条件


1) 您已经按初始化模块说明完成 初始化


2) 请在MSDK->Config Settings 中的CLOSE_BUGLY_REPORT选项中去掉对勾。


3) 按照约定进行混淆

如果您不需要混淆jar包,请忽略这个环节。如果您需要混淆jar包,请不要混淆msdk*.jar文件,或者混淆msdk*.jar文件时请把下面<br>的keep信息添加到App的混淆配置中:
-keep class * extends android.app.Activity{*;}
-keep class * extends android.app.Service{*;}
#Bugly接口
-keep public class com.tencent.bugly.crashreport.crash.jni.NativeCrashHandler{public *; native <methods>;}
-keep public interface com.tencent.bugly.crashreport.crash.jni.NativeExceptionHandler{*;}


4) App 还原符号表配置 请到Bulgy平台设置还原符号表,网址为:http://bugly.qq.com/,可以参考bugly官网中符号表配置中的方式来进行配置。

完成了以上4步后,您就可以查看线上应用crash时的堆栈信息了。

2 使用crash上报功能

crash上报功能可以在应用crash时上报字符串,二进制信息到服务器供您分析。详见上报添加额外业务日志上报添加额外二进制数据上报输出日志

查看上报数据

请使用协作者账号登录到bugly.qq.com的网站上,选择您要查看的应用,如下图所示,查看bugly上报的数据。如果您不知道协作者账号,请企业微信联系“MSDK助手”账号。

查看bulgy数据样图

上报添加额外业务日志

1 概要说明

当程序Crash时,有时需要添加一些额外的自定义数据

2 注册回调

1)功能描述

当程序Crash时,有时需要添加一些额外的自定义数据,随crash日志一起上报到Bugly平台,这样可以更好的定位造成crash的原因。 如概述中3.1上传额外字符串所示,上报的数据可以在Bugly平台上可以在“自定义日志”->“额外数据”中找到。

2)接口声明
public delegate String CrashReportMessageDelegate();
3)参数说明

4)返回值
返回值类型 参数类型 说明
string crash上报用户自定义字符串
5)示例代码

您需要在初始化时注册额外数据上报事件CrashReportMessageEvent,并输出上报日志。

MsdkEvent.Instance.CrashReportMessageEvent += () => {
    //TODO 上报自定义字符串
    return "Report extra message when crash happened. MSDK version : "
    + WGPlatform.Version;
};
6)特殊说明

在进行native上报时,该回调有可能失效。

7)名词解释

3 接口调用

上报添加额外二进制数据

1 概要说明

当程序Crash时,有时需要添加一些额外的二进制数据

2 注册回调

1)功能描述

当程序Crash时,有时需要添加一些额外的二进制数据,随crash日志一起上报到Bugly平台,这样可以更好的定位造成crash的原因。最终可以在bugly平台上查看错误详情,二进制数据目前可以在“跟踪数据>附件信息”下找到具体的crash事件,并下载二进制数据文件。

2)接口声明
public delegate byte[] CrashReportDataDelegate();
3)参数说明

4)返回值
返回值名称 参数类型 说明
byte[] crash上报用户自定义二进制数组
5)示例代码

您需要在初始化时注册额外数据上报事件CrashReportDataEvent,并输出上报日志。

MsdkEvent.Instance.CrashReportDataEvent += () => {
 //TODO 上报自定义二进制信息
    string extraDataStr="Report extra data when crash happened. MSDK version : " + WGPlatform.Version;
    byte[] extraData=System.Text.Encoding.Default.GetBytes(extraDataStr);
    return extraData;
};
6)特殊说明

在native上报时,该回调有可能失效。

7)名词解释

3 接口调用

上报Lua/C#/JS脚本错误

1 概要说明

当游戏Lua/C#/JS脚本发生异常时,可以向bugly上报这些异常信息

2 注册回调

1)功能描述

上报脚本异常信息至bugly,可以在bugly上"错误分析" ->"Lua脚本错误/C#脚本错误/JS脚本错误"标签下查看这些上报

2)接口声明
void WGReportException(eExceptionType exception_type,
                            string exception_name,
                            string exception_msg,
                            string exception_stack,
                            Dictionary<string, string> ext_info);
3)参数说明
参数名称 类型 说明
exception_type eExceptionType枚举类型 异常上报类型
exception_name String 异常名字
exception_msg String 异常信息
exception_stack String 异常堆栈
ext_info Dictionary 事件内容,一个key-value形式的 Dictionary;key最大长度64,value最大长度1024,key个数最大50,key建议使用"B1","B2"规则命名,以减少流量消耗
4)返回值

5)示例代码
Dictionary<string, string> extInfo=new Dictionary<string, string>();
extInfo.Add("key1", "values1");
extInfo.Add("key2", "values2");
extInfo.Add("key3", "values3");
            WGPlatform.Instance.WGReportException(eExceptionType.eException_CSharp, 
                                      “MSDK_exception_name",     
                                      “MSDK_exception_msg”,
                                      “MSDK_exception_stack_test",
                                      extInfo);
6)特殊说明

7)名词解释

上报输出日志

1 概要说明

上报输出日志

2 注册回调

3 接口调用

1)功能描述

在某些native crash的场景下,注册给bugly的OnCrashReportDataEvent 和CrashReportDataEvent事件回调函数可能无法得到执行,推荐您使用自定义日志的接口:用于记录一些开发者关心的调试日志,可以更全面地反应App异常时的前后文环境。使用方式与android.util.Log一致。用户传入TAG和日志内容。该日志将在Logcat输出,并在发生异常时上报,上报日志最大30K。

在bugly页面上可以在 "错误分析" -> "自定义错误" 查看上报的自定义日志。

2)接口声明
void WGBuglyLog(eBuglyLogLevel level, string log);
3)参数说明
参数名称 参数类型 说明
level enum 详见结构体说明中eBuglyLogLevel部分
log string 要上传(打印)的内容
4)返回值及回调说明

5)示例代码
WGPlatform.Instance.WGBuglyLog(eBuglyLogLevel.eBuglyLogLevel_E, "bugly message test");
6)特殊说明

用户传入TAG和日志内容。该日志将在Logcat输出,并在发生异常时上报,上报日志最大30K。

7)名词解释

动态关闭bugly上报

1 概要说明

动态关闭bugly上报。调用时会关闭崩溃上报,其他bugly功能不影响;重新启动应用后再触发的崩溃会正常上报。

2 接口调用

1)功能描述

有些场景下,应用不需要崩溃上报,如:有些应用在杀进程时触发的上报不想上报到bugly;此时可以调用该接口关闭崩溃上报,其他bugly功能不影响;重新启动应用后再触发的崩溃会正常上报。

2)接口声明
void WGCloseCrashReport();
3)参数说明

4)示例代码
WGPlatform.Instance.WGCloseCrashReport();
6)特殊说明

调用该接口关闭崩溃上报后,其他bugly功能不影响;重新启动应用后再触发的崩溃会正常上报。

7)名词解释

常见问题