使用腾讯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属性,如下图


    推荐阅读