美文网首页安卓开发
集成bugly收集crash日志

集成bugly收集crash日志

作者: 蓝不蓝编程 | 来源:发表于2020-01-08 11:14 被阅读0次

    登陆bugly网站

    https://bugly.qq.com/v2/workbench/apps

    新建产品

    • 点击“新建产品”按钮


    • 输入App详细信息


    点击右上角“产品设置”

    获取APP ID

    后续代码集成时会用到


    集成

    1. 修改app工程下build.gradle文件
    • 在android->defaultConfig下增加ndk设置
    android {
        defaultConfig {
            ndk {
                // 设置支持的SO库架构
                abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
            }
        }
    }
    
    • 新增依赖
    implementation 'com.tencent.bugly:crashreport:latest.release'
    //其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如2.1.9
    
    implementation 'com.tencent.bugly:nativecrashreport:latest.release'
    //其中latest.release指代最新Bugly NDK版本号,也可以指定明确的版本号,例如3.0
    
    1. 新增网络安全配置network_security_config.xml文件
      res目录下新建xml目录,用于放置network_security_config.xml.
      该文件用于允许通过http方式访问bugly网站进行上报.
    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <domain-config cleartextTrafficPermitted="true">
            <domain includeSubdomains="true">android.bugly.qq.com</domain>
        </domain-config>
    </network-security-config>
    

    3.修改修改manifest文件

    • 增加权限
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    
    • 设置网络安全配置文件
      在application节点中新增如下信息:
    android:networkSecurityConfig="@xml/network_security_config"
    
    1. 初始化
      在Application中增加:
    CrashReport.initCrashReport(applicationContext, appId, BuildConfig.DEBUG)
    

    appId为bugly上创建的app的App ID.

    1. 模拟crash
    class MainActivity : AppCompatActivity() {
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
            button.setOnClickListener {
                CrashReport.testJavaCrash()
            }
        }
    }
    

    上述代码在点击按钮时调用CrashReport.testJavaCrash()触发异常.

    1. 查看bugly上报异常


    源代码

    https://gitee.com/cxyzy1/buglyDemo

    FAQ

    1. 问题描述: 在安卓9.0及以上手机上,bugly无法上报,报如下错误:
    020-01-08 09:23:46.827 5229-5263/com.cxyzy.buglydemo D/CrashReport: request: http://android.bugly.qq.com/rqd/async?aid=61005c91-d3f8-4cee-93ae-ad4fb6fb2cde, send: 27888 (pid=5229 | tid=5263)
    2020-01-08 09:23:46.836 5229-5263/com.cxyzy.buglydemo W/CrashReport: java.io.IOException: Cleartext HTTP traffic to android.bugly.qq.com not permitted
    ...
    2020-01-08 09:23:46.837 5229-5263/com.cxyzy.buglydemo E/CrashReport: Failed to upload, please check your network.
    

    解决方案:按照上面步骤增加网络安全配置network_security_config.xml文件

    相关文章

      网友评论

        本文标题:集成bugly收集crash日志

        本文链接:https://www.haomeiwen.com/subject/rfkdactx.html