使用腾讯bugly更新服务遇到的坑
注册Bugly账号 bugly是腾讯开发的,可以直接使用QQ账号即可完成注册登录;bugly.qq.com/
新建产品
【使用腾讯bugly更新服务遇到的坑】
配置项目 新建产品后那么可以对项目进行配置,目前APP添加的强制更新,未加入热修复;
1.导入jar文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.qing.appcar"
minSdkVersion 22
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
ndk {
//设置支持的SO库架构
abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
}
}
// 本地集成aar需要此配置
repositories {
flatDir {
dirs 'libs'
}
}
}dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
//以下为bugly更新要导入的jar文件
implementation 'com.tencent.bugly:crashreport_upgrade:latest.release'//其中latest.release指代最新版本号,也可以指定明确的版本号,例如1.2.0
implementation 'com.tencent.bugly:nativecrashreport:latest.release' //其中latest.release指代最新版本号,也可以指定明确的版本号,例如2.2.0}
复制代码
2.权限配置
复制代码
3、Activity配置
"com.tencent.bugly.beta.ui.BetaActivity"
android:configChanges="keyboardHidden|orientation|screenSize|locale"
android:theme="@android:style/Theme.Translucent" />
复制代码
4、安卓N以上兼容配置,配置FileProvider
//此处要改为自已自定义的FileProvider,使用安卓自带的会抛出异常,未查找原因
"com.qing.appcar.CarFileProvider"
android:authorities="com.qing.appcar.fileProvider"
android:exported="false"
android:grantUriPermissions="true">
复制代码
5、初始化 找到项目的application类,添加以下方法
Bugly.init(getApplicationContext(), "注册时申请的APPID", false);
复制代码
App打包 使用Android Studio打包
1、选择Build下的Create APK
2、
此处选择APK即可,点击下一步
3、
存储路径自定义,passwod、alias(别名)自已输入
4、
选择release,V1点击Finish即可完成打包;
加入服务 打完包后回到Bugly新建的产品,选择设置
1、
2、
点击应用升级,选择全面更新,发部新版本
3、
上传我们已打好的包,如已上传可以选择原上传的应用包即可; 4、
创建自己的更新策略,此外的版本号如何来确认或新版本如何来更新,其实在导入Jar时的build.gradle文件中
遇到的坑 1、FileProvider 使用安卓自带抛出异常
此处只能自己定义类,并继承FileProvider,才可以,使用官方暂时不清楚原因;
2、配置好,但是自动更新并不声效?
正常来讲,配置后并没有太大的问题,不生效可能原因在于未初始化调用,在本程序中原因就是Application未调用Oncreate方法,原因在于AndroidManifest.xml中的Application标签未添加android:name属性,如下图
推荐阅读
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- iOS中的Block
- Linux下面如何查看tomcat已经使用多少线程
- 使用composer自动加载类文件
- android|android studio中ndk的使用
- 使用协程爬取网页,计算网页数据大小