Flutter崩溃报告与错误监控插件flutter_bugly_play的使用

Flutter崩溃报告与错误监控插件flutter_bugly_play的使用

pub package Gitter

腾讯Bugly flutter运营统计插件,带更新功能请至flutter_bugly

支持Android/iOS 运营统计、原生异常上报、flutter异常上报、应用更新


一、引入

pubspec.yaml文件中添加依赖:

dependencies:
  flutter_bugly_play: lastVersion

二、项目配置

android/app/build.gradle文件中进行以下配置:

lintOptions {
    // 如打包出现Failed to transform libs.jar to match attributes
    checkReleaseBuilds false
}
defaultConfig {
    ndk {
        // 设置支持的SO库架构
        abiFilters 'armeabi-v7a'//, 'arm64-v8a', 'x86', 'x86_64'
    }
}

三、使用

首先导入插件并初始化:

import 'package:flutter_bugly/flutter_bugly.dart';

// 使用flutter异常上报
void main() => FlutterBugly.postCatchedException(
      () => runApp(MyApp()),
      debugUpload: true, // 在调试模式下上传错误日志
    );

// 初始化插件
FlutterBugly.init(
  androidAppId: "your android app id", // Android应用ID
  iOSAppId: "your iOS app id", // iOS应用ID
  // 自动检查更新功能(可选)
  // autoCheckUpgrade: true,
  // checkUpgradeCount: 0,
  // upgradeCheckPeriod: 60,
);

四、release打包(Android)

64-bit

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

32-bit(目前配合armeabi-v7a可以打出32位64位通用包)

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

五、支持属性(Android)

以下是一些常用的API示例:

String channel, // 自定义渠道标识
int initDelay = 0, // 延迟初始化,单位秒

// 设置用户ID
FlutterBugly.setUserId("user id");

// 添加用户数据
FlutterBugly.putUserData(key: "key", value: "value");

// 设置用户标签
int tag = 9527;
FlutterBugly.setUserTag(tag);

完整示例代码

以下是完整的示例代码,展示如何集成和使用flutter_bugly_play插件。

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter_bugly/flutter_bugly.dart';

void main() => FlutterBugly.postCatchedException(
      () => runApp(MyApp()),
      debugUpload: true, // 在调试模式下上传错误日志
    );

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomePage(),
    );
  }
}

class HomePage extends StatefulWidget {
  [@override](/user/override)
  State<StatefulWidget> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  String _platformVersion = 'Unknown';

  [@override](/user/override)
  void initState() {
    super.initState();
    // 初始化插件
    FlutterBugly.init(
      androidAppId: "5346b6e5bb", // 替换为你的Android App ID
      iOSAppId: "your app id", // 替换为你的iOS App ID
      // 自动检查更新功能(可选)
      // autoCheckUpgrade: true,
      // checkUpgradeCount: 0,
      // upgradeCheckPeriod: 60,
    ).then((_result) {
      setState(() {
        _platformVersion = _result.message;
        print(_result.appId);
      });
    });

    // 设置用户ID
    FlutterBugly.setUserId("user id");

    // 添加用户数据
    FlutterBugly.putUserData(key: "key", value: "value");

    // 设置用户标签
    int tag = 9527;
    FlutterBugly.setUserTag(tag);

    // 自动检查更新功能时,可以省略手动检查
    // if (mounted) _checkUpgrade();
  }

  [@override](/user/override)
  void dispose() {
    super.dispose();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Plugin example app'),
      ),
      body: GestureDetector(
        onTap: () {
          throw 'test'; // 模拟抛出异常
        },
        child: Center(
          child: Text('init result: $_platformVersion\n'),
        ),
      ),
    );
  }
}

更多关于Flutter崩溃报告与错误监控插件flutter_bugly_play的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter崩溃报告与错误监控插件flutter_bugly_play的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


flutter_bugly_play 是一个用于 Flutter 应用的崩溃报告和错误监控插件,它集成了腾讯的 Bugly 服务。通过使用这个插件,你可以轻松地监控应用的崩溃情况、捕获异常、收集用户反馈,并生成详细的崩溃报告。

1. 安装 flutter_bugly_play 插件

首先,你需要在 pubspec.yaml 文件中添加 flutter_bugly_play 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_bugly_play: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来安装插件。

2. 配置 Bugly

在使用 flutter_bugly_play 之前,你需要在腾讯 Bugly 平台上注册一个应用,并获取到 App IDApp Key

3. 初始化 Bugly

在你的 Flutter 应用启动时,初始化 flutter_bugly_play 插件。通常可以在 main.dart 文件中进行初始化:

import 'package:flutter/material.dart';
import 'package:flutter_bugly_play/flutter_bugly_play.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // 初始化 Bugly
  await FlutterBuglyPlay.init(
    androidAppId: 'your_android_app_id',  // Android 应用的 App ID
    iOSAppId: 'your_ios_app_id',        // iOS 应用的 App ID
    debugMode: true,                    // 是否开启调试模式
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

4. 捕获异常

flutter_bugly_play 会自动捕获 Flutter 框架中的异常,并将其上报到 Bugly 平台。你还可以手动捕获并上报自定义异常:

try {
  // 你的代码
} catch (e, stackTrace) {
  // 手动上报异常
  FlutterBuglyPlay.postException(
    error: e.toString(),
    stackTrace: stackTrace.toString(),
  );
}

5. 用户反馈

你可以在应用中集成 Bugly 的用户反馈功能,让用户能够直接提交反馈:

FlutterBuglyPlay.showFeedbackPage();

6. 自定义日志

你还可以使用 flutter_bugly_play 来记录自定义日志,这些日志会与崩溃报告一起上报到 Bugly 平台:

FlutterBuglyPlay.log('This is a custom log message');

7. 查看崩溃报告

在 Bugly 平台上,你可以查看应用的崩溃报告、异常统计、用户反馈等信息。通过这些数据,你可以快速定位和修复应用中的问题。

8. 其他功能

flutter_bugly_play 还提供了其他一些功能,例如:

  • 设置用户标识:你可以为每个用户设置一个唯一的标识,方便在 Bugly 平台上区分不同用户的崩溃报告。

    FlutterBuglyPlay.setUserId('user123');
    
  • 设置标签:你可以为崩溃报告设置标签,方便分类和过滤。

    FlutterBuglyPlay.setTag(1);
回到顶部