bugly android 错误不上报,Flutter Android 端集成 Bugly 的异常上报和升级功能

前提

Flutter 版本:1.17.0地址,别用最新版本或者比较老的版本。我之前使用1.13.0版本也会出现问题。

Dart版本:2.8.1使用Flutter中提供的版本

bVbHGmt

bVbHGmu

ok ,在大版本相同的情况下。我能搞定的问题,你也没问题。

不多说了,打包这块真的是卡了好久...

在 Bugly 官网注册

在官网注册一个App,我这里只注册了 Android 渠道的。iOS 的不熟悉,所以以后再搞吧。

注册之后会拿到androidAppId,在初始化的时候填写即可。

bVbHGmv

集成上报功能

App的线上问题收集有助于开发定位问题。而且还可以自定义上报功能,例如埋点数据上报。之前在开发Android App的时候集成过Bugly。那么这里也就直接在Flutter App中再集成一次。

Bugly提供了flutter_bugly包,我们直接使用即可。

按照官方文档集成即可。

这里说一下注意事项。

在项目配置中,如果支持全部的 SO 库架构,apk 的大小会增大两倍左右。但是不支持全部 SO 库架构,有可能会出现 flutter build apk失败的情况。

defaultConfig {

ndk {

//设置支持的SO库架构,apk 的大小会增大两倍左右

abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'

}

}

如只支持armeabi-v7a,打出来的apk只有5.6M左右,下面是支持全部so库架构打出来的apk大小

bVbHGmw

打包的时候根据不同的平台打不同的包

64-bit

flutter build apk --release --target-platform android-arm64

32-bit

flutter build apk --release --target-platform android-arm

问题

debug apk 包出现异常或者崩溃不会上报,所以只能打 release 包。我这边使用还会一分钟左右的延迟

集成升级功能

升级也是App必备的功能,这里为了快速验证升级效果,也是使用的 Bugly 提供的升级功能。

在官方文档中说明使用了AndroidX的话的自定义升级弹窗了。官方也给了一个示例,那么我们直接使用示例中的弹窗效果

bVbHGmx

实现

由于想快速实现升级功能,且考虑了每个手机必备浏览器,所以下载的操作直接使用浏览器来实现。

流程图大概如下:

bVbHGmy

实现的核心代码如下:

使用的也基本是 Bugly 提供的升级弹窗,跳转浏览器 使用的是 【 launchurl 库】

void _checkUpdate(){

if (Platform.isAndroid) {

FlutterBugly.checkUpgrade();

FlutterBugly.getUpgradeInfo().then((_info) {

FlutterBugly.getUpgradeInfo().then((UpgradeInfo info) {

if (info != null && info.id != null) {

showUpdateDialog(info.versionName, info.newFeature, info.apkUrl);

}else{

ToastUtil.showBasicToast("暂未检测到新版本");

}

});

});

}

}

void showUpdateDialog(String versionName, String feature, String url) async {

await showDialog(

barrierDismissible: false,

context: context,

builder: (_) => _buildDialog(versionName,feature, url),

);

}

Widget _buildDialog(String versionName, String feature, String url) {

return new UpdateDialog(

key:_dialogKey,

version:versionName,

feature:feature,

onClickWhenDownload:(_msg) {

//2. 提示不要重复下载

print("---------提示不要重复下载---------${_msg}");

},

onClickWhenNotDownload:() {

// 1. 直接使用浏览器下载

_launchURL(url);

// 2. 下个计划:本地下载

// 下载apk,完成后打开apk文件,建议使用dio+open_file插件

print("---------下载apk,完成后打开apk文件,建议使用dio+open_file 插件---------");

},

);

}

/// 跳转应用市场升级

_launchURL(url) async {

if (await canLaunch(url)) {

await launch(url);

} else {

throw 'Could not launch $url';

}

}

问题

UpgradeInfo经常会返回null,多试几次。

上传 bugly 的 apk 的版本号一定要大于本地 apk 的版本号才能升级。

bVbHGmz

bVbHGmA

源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值