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版本号 -->    <meta-data            android:name="BUGLY_APP_VERSION"            android:value="" />    <!-- 配置APP渠道号 -->    <meta-data            android:name="BUGLY_APP_CHANNEL"            android:value="" />    <!-- 配置Bugly调试模式(true或者false-->    <meta-data            android:name="BUGLY_ENABLE_DEBUG"            android:value="" />

上面除了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 permitted2019-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".../>

更多相关文章

  1. android 自动化测试方法
  2. Android(安卓)app安装路径 2
  3. android应用程序的混淆打包(转)
  4. Android打开不同类型文件
  5. Android(安卓)Studio打包APK文件的具体方法介绍
  6. android中SharedPreference的使用
  7. 日拱一卒(十七)
  8. Android基于HttpUrlConnection类的文件下载实例代码
  9. Android版本适配:9.0 Pie(API级别28)

随机推荐

  1. 2013.07.22——— android 修改hosts
  2. Android使用DialogFragment,自定义对话框
  3. Service实例-播放mp3音乐
  4. Android(安卓)VR效果GoogleVR
  5. 2012.08.23——— android ndk 编译多个s
  6. android Aidl 实现进程间通讯
  7. Android(安卓)性能优化二 内存优化
  8. Android中的AutoCompleteTextView的使用
  9. android 格式化
  10. android 关于截屏