Android(安卓)系统app集成Bugly收集错误
16lz
2021-01-26
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".../>
更多相关文章
- android 自动化测试方法
- Android(安卓)app安装路径 2
- android应用程序的混淆打包(转)
- Android打开不同类型文件
- Android(安卓)Studio打包APK文件的具体方法介绍
- android中SharedPreference的使用
- 日拱一卒(十七)
- Android基于HttpUrlConnection类的文件下载实例代码
- Android版本适配:9.0 Pie(API级别28)