1、登录网易云服务器的控制台。
2、点击左侧导航栏中“安全组”选项。
3、新建一个安全组。
4、在弹出的“新建安全组”窗口中,选择“放通全部端口”模板,确认即可开放所有端口。
能收集以下崩溃异常日志:1、java层代码
2、native层(NDK层,对应为so文件中的C/C++代码)
3、unity3d引擎下的C#脚本
4、cocos2dx(Lua,C++,JS代码异常均能捕获)
方法/案例
库文件导入
方式一:自动导入(推荐)
在Module的buid.gradle文件中添加依赖和属性配置:
(另有手动导入办法,详见网易云捕官网集成说明)
集成说明列表
1、参数配置2、简单的初始化调用3、Java集成案例4、NDK集成案例5、配置mapping文件
参数配置
1)权限信息配置需要在在AndroidManifest.xml中添加以下权限:(见图一)
备注:在Android M系统以后,android.permission.READ_PHONE_STATE被设定为敏感权限,如果
AndroidManifest.xml文件中targetSdkVersion被设置为23以上,且代码中没有请求过该权限,可能导致获取的imei、deviceID等设备信息为空,但是对程序的稳定性并没有影响。
2)AppID配置还需在AndroidManifest.xml的application中添加<meta-data>标签,其中android:value填写您APP的AppID值,可以在”用户中心“-”设置“-”产品信息“中获取。(注意:将meta-data子标签加到<application>父标签下,配置不正确可能导致后台看不到数据。)(见图二)
3)Proguard混淆配置避免混淆Bugrpt SDK,请在Proguard混淆文件中配置:(见图三)
简单的初始化调用
在项目Application类或者主Activity类的onCreate()方法中添加以下代码:
如果Java层或NDK代码发生异常时,bugrpt便会捕获到该异常并发送给服务器。
Java集成案例
SDK集成后可以测试一下bugrpt的异常捕获能力,以下为一个典型的Java集成案例:编写一个测试使用的demo示例,新建工程名 为"crashtest",导入bugrpt.jar,并在AndroidManifest.xml中添加相应权限并进行初始化调用。为了便于观测,我们 在“crashTest”按钮里添加一个模拟的异常,对应的java层代码:(见图一)
可以尝试生成APK之后,点击按钮触发模拟异常,后台便能查询到如下崩溃日志:(见图二)
NDK集成案例
以下为一个典型的NDK集成案例:编写一个测试使用的NDK崩溃demo示例,新建工程名为"crash",导入相应的 libbugrpt.so,在AndroidManifest.xml中添加相应权限,之后对云捕sdk进行初始化调用。为了便于观测,同样构建一个按钮,在其中添加一个模拟的异常,对应的java层代码:(见图一)
而msg函数则是打印一个字符串最后触发了一个异常,C++实现代码如下:(见图二)
可以尝试生成APK之后,点击按钮触发模拟异常,后台便能查询到如下崩溃日志:可以很清晰地看出崩溃发生在msg函数的某个偏移,pc为00000df2,可以通过addr2line很方便地转换为出错的代码行号。(见图三)
可以看出demo.cpp第51行代码处的代码确实是出错位置。(见图四)
配置mapping
生成APK的时候一般都需要进行混淆处理,此时崩溃发生时产生的崩溃堆栈信息都是混淆后的符号,不便于排查BUG。为了能正确地还原回源码时的堆栈,需要配置一下mapping.txt文件,让“云捕”自动化进行反混淆处理。
混淆处理时,利用proguard在混淆后会生成一个mapping.txt文件,该文件地址Eclipse下默认生成在工程目录的proguard文件夹下,而Android Studio则是根据配置生成在指定目录下。Eclipse&Android Studio:(见图一)
只需要把这个mapping.txt文件上传到后台即可。登录云捕系统,选择您的APP后点击“上传mapping“:(见图二)
上传成功后会显示:(见图三)
高级设置
我们提供UserStrategy类作为Bugrpt的初始化扩展,开发者可以传入一些自定义信息。通过以下方式传入:
Context appCtx = this.getApplicationContext()
UserStrategy strategy = new UserStrategy(appCtx)//...在这里设置strategy的属性,在bugrpt初始化时传入
CrashHandler.init(appCtx, strategy)
UserStrategy主要API:1、设置渠道:Bugrpt默认读取AndroidManifest.xml文件中渠道信息,可通过该接口修改渠道信息。
strategy.setChannel("myChannel")
2、设置场景:Bugrpt可以设置崩溃场景。
strategy.setScene("myScene")
3、设置用户账户Bugrpt可以设置用户的账户信息,方便开发者针对性排错。
strategy.setUserId("myUserID")
4、设置自定义Map参数对
Bugrpt支持用户自定义Map参数可以保存发生Crash时的一些自定义的环境信息。在发生Crash时会随着异常信息一起上报并在页面展示。
strategy.addUserDefinedParam("key", "value")
注意:最多可以有9对自定义的key-value(超过则添加失败),key限长50字节、value限长200字节,过长截断。
更多的用户功能
1 主动上报开发者catched的异常
2 开发者主动上传信息接口
3 开发者记录面包屑接口
4 ReLinker.loadLibrary接口
如下:
1、可能是网络状态不佳,或者没有打开网络,这个时候检查网络是否稳定,确定网络没有任何问题再试试。
2、可能是网易云音乐内部服务器整顿,查看服务器是否正在维护,稍后再试。
3、或者是手机中了病毒,使用杀毒工具进行杀毒并清理缓存后再试。
4、软件版本太低导致,更新软件版本到最新的版本。
网易云音乐:
网易云音乐是一款专注于发现与分享的音乐产品,依托专业音乐人、DJ、好友推荐及社交功能,在线音乐服务主打歌单、社交、大牌推荐和音乐指纹,以歌单、DJ节目、社交、地理位置为核心要素,主打发现和分享。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)