android 的版本是 28,集成好了。application 类代码如下:
@Override
public void onCreate() {
CrashReport.initCrashReport(getApplicationContext(), "xxxxx", false);
super.onCreate();
}
这种格式无论如何也可以捕捉到 crash 了吧?为什么我这边死活没反应呢?
我想我找到bugly失效的原因了,虚拟机调试发现下面这一段: W/System.err: java.io.IOException: Cleartext HTTP traffic to android.bugly.qq.com not permitted
at com.android.okhttp.HttpHandler$CleartextURLFilter.checkURLPermitted(HttpHandler.java:115)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:458)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:127)
搞定了!!!
主要有两个原因:一是 27 以上的 android 限制了非加密的网络请求,你要么降低版本,要么用 ssl 加密,要么添加设置,具体看: https://www.jianshu.com/p/cbd4ffc26501
二是 multidex 设置不正确,这里涉及到最低版本 21 以上的 android 客户端自带 multidex 支持,不需要依赖,直接 multiDexEnabled true 开启即可。