Android 系统app集成Bugly收集错误

Android版本:8.1
需求:在系统app里集成bugly,收集错误信息。


一丶在makefile里加入bugly的SDK

把从bugly下载的jar包放入本地app的lib目录下

LOCAL_STATIC_JAVA_LIBRARIES := bugly
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := bugly:lib/bugly_crash_release.jar

这里bugly只是个代名词,格式为 xxx:path


二丶在代码里初始化

AndroidManifest.xml

  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  <uses-permission android:name="android.permission.READ_LOGS" />

在application下加入metadata

    <!--bugly config-->
    <!-- 配置APP ID -->
    <meta-data
            android:name="BUGLY_APPID"
            android:value="<APP_ID>" />
    <!-- 配置APP版本号 -->
    <meta-data
            android:name="BUGLY_APP_VERSION"
            android:value="<APP_Version>" />
    <!-- 配置APP渠道号 -->
    <meta-data
            android:name="BUGLY_APP_CHANNEL"
            android:value="<APP_Channel>" />
    <!-- 配置Bugly调试模式(true或者false-->
    <meta-data
            android:name="BUGLY_ENABLE_DEBUG"
            android:value="<isDebug>" />

上面除了APP_ID指的是我们创建的app的id, 其余的是自定义。


然后就是在Application.java的Oncreate里初始化buglym 记得导包
MyApplication.java

  import com.tencent.bugly.crashreport.CrashReport;
	
  @Override
  public void onCreate() {
    super.onCreate();
    //init bugly
    CrashReport.initCrashReport(getApplicationContext(), "xxxxxxxxx", false);
  }

之后就可以调用测试,在主Activity的oncreate里执行测试。
MainActivity.java

  import com.tencent.bugly.crashreport.CrashReport;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.xxxxx);
    
    CrashReport.testJavaCrash();
  }

遇到的问题:编译成功测试崩溃,出了错,但是崩溃信息没有上报到bugly。

日志显示
Cleartext HTTP traffic to android.bugly.qq.com not permitted

2019-05-27 14:39:41.527 11029-11061/? W/System.err: java.io.IOException: Cleartext HTTP traffic to android.bugly.qq.com not permitted
2019-05-27 14:39:41.528 11029-11061/? W/System.err:     at com.tencent.bugly.proguard.s.a(BUGLY:266)
2019-05-27 14:39:41.528 11029-11061/? W/System.err:     at com.tencent.bugly.proguard.s.a(BUGLY:115)
2019-05-27 14:39:41.528 11029-11061/? W/System.err:     at com.tencent.bugly.proguard.v.run(BUGLY:355)
2019-05-27 14:39:41.528 11029-11061/? W/System.err:     at com.tencent.bugly.proguard.u$1.run(BUGLY:723)

解决办法:

在res的xml里创建一个network_security_config.xml文件,文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

然后,在AndroidManifest.xml文件下的application标签增加以下属性:

<application
...
	 android:networkSecurityConfig="@xml/network_security_config"
...
/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值