友盟(软件异常实时监听的好帮手:Crash)接入教程(有点基础的小白最易学的教程)
友盟(软件异常实时监听的好帮手:Crash)接入教程
这次的接入和上次的XBanner有所不同(多了个buildscript的操作),请耐心阅读
混淆等操作就不演示了,现在还不会,下次再发
本次使用的文档:https://developer.umeng.com/docs/119267/detail/118584
注册友盟账户
个人中心添加应用(方法很多)
填写应用信息,这些产品选这几个就够用了
添加个图标以便于友盟上传应用图标使用(自己找个图就行了)
这里推荐阿里icon图标库:https://www.iconfont.cn/
自取
创建工程,并替换应用图标
命名为app.png自动替换()
添加Maven和依赖
这个链接(添加应用后推荐的文档)就不发了,用上面的文档就行
重点是这个!!!(小白请关注这里)这里其实有两块配置代码(分开如下)
build.gradle代码
buildscript {repositories {google()jcenter()maven { url 'https://repo1.maven.org/maven2/' }}dependencies {classpath 'com.android.tools.build:gradle:3.4.0'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}
}
maven库代码
老规矩,这玩意儿需要添加到总项目
的settings.gradle
里使用(重复的自己删除)
allprojects {repositories {google()jcenter()maven { url 'https://repo1.maven.org/maven2/' }}
}
添加依赖
(
不同点
出现了哦!!!)这里是工程 build.gradle
要注意,是app目录下
的,不是整个项目里的(而且AS规定buildscript必须在plugins前使用(添加)!!!!!
)
// 友盟统计SDKimplementation 'com.umeng.umsdk:common:9.4.7'// 必选implementation 'com.umeng.umsdk:asms:1.4.1'// 必选implementation 'com.umeng.umsdk:apm:1.5.2' // 错误分析升级为独立SDK,看crash数据请一定集成,可选
创建全局变量APP类(Aplication)
APP.java
初始化友盟
Channel名遵循规则,随便起,两处保持一致
下面的代码里我添加了注释
import android.app.Application;import com.umeng.commonsdk.UMConfigure;public class APP extends Application {@Overridepublic void onCreate() {super.onCreate();//设置LOG开关,默认为falseUMConfigure.setLogEnabled(true);/* Channel渠道的命名规范可以由英文字母、阿拉伯数字、下划线、中划线、空格、括号组成,可以含汉字以及其他明文字符,但是不建议使用中文命名,会出现乱码。首尾字符不可以为空格。不要使用纯数字作为渠道ID。最多256个字符。“unknown” 及其各种大小写形式,作为【友盟+】保留的字段,不可以作为渠道名。*///友盟预初始化UMConfigure.preInit(getApplicationContext(), "你的appkey", "Umeng");//这里的Umeng随便起,和下面一致就行//友盟真正初始化UMConfigure.init(this, "你的appkey", "Umeng", UMConfigure.DEVICE_TYPE_PHONE, "");}
}
配置权限和全局应用(APP类)
<!--权限--><uses-sdk android:minSdkVersion="8"></uses-sdk><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_PHONE_STATE" /><uses-permission android:name="android.permission.INTERNET" />...<!--全局变量类,这个也要配置哦-->android:name=".APP"
添加意图过滤(intent-filter),并填写你的appkey
<intent-filter><category android:name="android.intent.category.BROWSABLE" /><category android:name="android.intent.category.DEFAULT" /><data android:scheme="um.该app对应的appkey" /></intent-filter>
再次查找appkey的方法
这里多谢:柯凡同学爱编程(B站用户,IU浏览器的开发者哦),然后我才很快的找到,哈哈哈
友盟官网>个人中心>点击上方的管理即可(我的码就不给大家看了,嘻嘻,你们看自己的就行)
MainActivity.java文件的配置
(来!自己写个Bug测试一下,没想到啊还有自己专门写Bug的一天,哈哈哈哈)
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;public class MainActivity extends AppCompatActivity {private int aA =1;//定义一个假的变量@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//这里一定要有try...catch(捕获异常)不然还没等友盟上传你软件就崩了!!!!!!!!!!try {Button c = findViewById(aA);//获取假的idc.setText(55);//调用一些下不然不会报错}catch (Exception e){}}@Overrideprotected void onStart() {super.onStart();Log.e("测试","据说这玩意儿不算错误");}
来看一下效果
运行后你AS的Run里面会出现的内容,自己看吧
此时的软件
此时的友盟后台
个人中心>管理>点击你添加的应用
点这个
首次进入需要开通实时监控功能,自己点击开通就是了(因为我忘记截图了,所以就不发图了,哈哈哈),如果刚开通后没有错误,你就再运行一下你的APP,就会有了
下滑就可以查看了
OK了
小提示:这次的官方文档里有用AS上方工具栏添加maven库的方法
so文件是用来适配不同设备用的,想学的可以自取
图片是自己一张张添加的,引用请说明
大哥!来吧!动手吧!我不拦着您点赞!嘻嘻~
友盟(软件异常实时监听的好帮手:Crash)接入教程(有点基础的小白最易学的教程)相关推荐
- Java实时监听文件夹,实现实时监听微信接收的文件,去掉文件的只读属性
前言 众所周知,小而美软件每次更新都不干人事啊.上次忘了哪个版本更新的,接收到的文件一律是只读文件,虽然只需要右键属性把只读勾选去掉就行,但是每次接收了个文件都要这么做属实是有点麻烦.所以就自己写了个 ...
- php监听input,jQuery如何实时监听获取input输入框的值
jQuery实时监听获取input输入框的值,在我们日常web项目开发也常需要去实现这样的功能效果.为了作出即时动作去引导浏览者,以便提高网站的用户体验感. 下面我们就结合具体的代码示例,为大家介绍j ...
- Android实时监听网络状态
Android开发实时监听网络状态变化一般有两种方法: 1. 新建一个基类BasicActivity.class,在基类中注册网络监听广播NetworkChangeReceiver.class,所有页 ...
- html 监听input输入框的值,利用原生JS实时监听input框输入值
利用原生JS实时监听input框输入值 原生JS中可以使用oninput,onpropertychange,onchange oninput,onpropertychange,onchange的用法 ...
- vue动态获取元素距离页面顶部的高度_VUE如何实时监听元素距离顶部高度
VUE如何实时监听元素距离顶部高度 发布时间:2020-07-30 09:09:43 来源:亿速云 阅读:150 作者:小猪 这篇文章主要讲解了VUE如何实时监听元素距离顶部高度,内容清晰明了,对此有 ...
- vue图片宽高自适应_Echarts图标宽度变成100px,让图表宽度随着父元素自动适应,Vue实时监听宽度的变化,这可能是史上最好的解决方案!...
源码解读:当Echarts绘制图表计算宽度的时候,由于初始化图表设置为display: none,所以无法获取到clientWidth,而 parseInt(stl.width, 10)) 将widt ...
- vue获取元素距离页面顶部的距离_VUE实时监听元素距离顶部高度的操作
效果图如下所示 .html 今日热门 今日热销 .js mounted(){ window.addEventListener('scroll',this.handleScrollx,true) }, ...
- JS实时监听DOM元素变化 - MutationObserver
使用 MutationObserver API实时监听DOM元素变化 创建 MutationObserver 实列,接受一个用于监听到DOM元素变化的回调函数 const handleListenCh ...
- 实时监听输入框值变化的完美方案:oninput onpropertychange
实时监听输入框值变化的完美方案:oninput & onpropertychange 原文:实时监听输入框值变化的完美方案:oninput & onpropertychange 在 W ...
最新文章
- leetcode算法题--第一个只出现一次的字符
- 【实施工程师之家】——mysql四种索引PRIMARY(主键索引)、INDEX(一般索引)、UNIQUE(非空索引)、FULLTEXT(全文索引)应用
- Leetcode题库 11.盛水最多的容器(双指针法 C实现)
- Collection集合总结
- 对未来人机融合智能领域的思考
- iOS-单例设计模式
- 计算机c盘只能新建文件夹,1.C盘只能新建文件夹不能新建文件(用户权限问题)...
- 渗透之——网站入侵思路
- python画建筑物_通过Python将故宫的建筑物图片,转化为手绘图
- windows电脑截截屏截图的方法
- 一张表看懂英式音标和美式音标的差异
- 单字母密码密码分析(上)
- 那些年,我们遇到的傻X问题
- Linux服务器开发,手把手设计实现epoll
- 鸡嗉囊病预防的方法 鸡防治嗦囊炎病用什么药
- 文件被其他程序占用及解决方法
- Diagnosing OSGi uses conflicts
- lg g5 android,【LGG5SE评测】Android中的SE 模块化LG G5 SE评测(全文)_LG G5 SE_手机评测-中关村在线...
- 飞凌嵌入式丨千兆网之RGMII SGMII解析
- springmvc后台获取图片,到jsp页面显示