首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将instabug SDK集成到flutter应用程序中

如何将instabug SDK集成到flutter应用程序中
EN

Stack Overflow用户
提问于 2021-01-20 06:13:20
回答 3查看 339关注 0票数 0

我试图在我的android flutter应用程序中实现Instabug (崩溃分析),但我不知道应该在哪里输入这些代码到我的项目中。

在Application子类的onCreate()方法中初始化Instabug:

Image of the step from instabug

flutter包中Application子类的onCreate()方法在哪里?如果我需要创建一个,我应该在哪里创建呢?

EN

回答 3

Stack Overflow用户

发布于 2021-01-20 06:52:53

在flutter应用程序根目录中,

沿着android/app/src/main/kotlin/your package/走,然后你会看到MainActivity

只需在MainActivity的相同路径中创建一个继承自FlutterApplication的类

代码语言:javascript
复制
class CustomApplication : FlutterApplication {
    override fun onCreate() {
        super.onCreate()
        // Paste here the integration codes of instabug
    }
}

然后转到清单、android/app/src/main/kotlin/your package/AndroidManifest.xml和修改应用程序部分

代码语言:javascript
复制
<application
   android:name=".CustomApplication"
   ...
</application>
票数 1
EN

Stack Overflow用户

发布于 2021-01-20 09:42:53

您可以使用package https://pub.dev/packages/instabug_flutter

对于Android,请按照Readme中提到的步骤操作

步骤1:将以下Maven库添加到您的项目级build.gradle

代码语言:javascript
复制
allprojects {
    repositories {
        maven {
            url "https://sdks.instabug.com/nexus/repository/instabug-cp"
        }
    }
}

步骤2:创建一个扩展FlutterApplication的新Java类并将其添加到您的AndroidManifest.xml中。

代码语言:javascript
复制
<application
    android:name=".CustomFlutterApplication"
    ...
</application>

步骤3:在新创建的CustomFlutterApplication类中,覆盖onCreate()并添加以下代码。

来自https://github.com/Instabug/Instabug-Flutter/blob/master/example/android/app/src/main/java/com/instabug/instabugflutterexample/CustomFlutterApplication.javaCustomFlutterApplication代码

代码语言:javascript
复制
package com.instabug.instabugflutterexample;

import io.flutter.app.FlutterApplication;
import com.instabug.instabugflutter.InstabugFlutterPlugin;

import java.util.ArrayList;

public class CustomFlutterApplication extends FlutterApplication {
  @Override
  public void onCreate() {
    super.onCreate();
    ArrayList<String> invocation_events = new ArrayList<>();
    invocation_events.add(InstabugFlutterPlugin.INVOCATION_EVENT_FLOATING_BUTTON);
    InstabugFlutterPlugin instabug = new InstabugFlutterPlugin();
    instabug.start(CustomFlutterApplication.this, "2d355f559ea67051a56fce82603f8e41", invocation_events);
    instabug.setWelcomeMessageMode("WelcomeMessageMode.disabled");
  }
}

Dart示例代码片段https://github.com/Instabug/Instabug-Flutter/blob/master/example/lib/main.dart

代码语言:javascript
复制
import 'dart:async';
import 'dart:io' show Platform;
import 'package:flutter/material.dart';
import 'package:instabug_flutter/Instabug.dart';
import 'package:instabug_flutter/BugReporting.dart';
import 'package:instabug_flutter/Surveys.dart';
import 'package:instabug_flutter/FeatureRequests.dart';
import 'package:instabug_flutter/CrashReporting.dart';

void main() async {
  FlutterError.onError = (FlutterErrorDetails details) {
    Zone.current.handleUncaughtError(details.exception, details.stack);
  };

  runZoned<Future<void>>(() async {
    runApp(MyApp());
  }, onError: (dynamic error, StackTrace stackTrace) {
    CrashReporting.reportCrash(error, stackTrace);
  });
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String _platformVersion = 'Unknown';

  @override
  void initState() {
    super.initState();
    if (Platform.isIOS) {
      Instabug.start('efa41f402620b5654f2af2b86e387029',
          <InvocationEvent>[InvocationEvent.floatingButton]);
    }
    initPlatformState();
  }
票数 0
EN

Stack Overflow用户

发布于 2021-02-20 05:07:56

在深入研究了他们在instabug github repo上的示例后,我能够解决这个问题。

示例应用程序在main/kotlin/com//

  1. 下创建一个新的java文件CustomFlutterApplication.java。这就是MainActivity.kt存在的地方。

代码语言:javascript
复制
    package com.example.app;
    
    import io.flutter.app.FlutterApplication;
    import com.instabug.instabugflutter.InstabugFlutterPlugin;
    
    import java.util.ArrayList;
    
    public class CustomFlutterApplication extends FlutterApplication {
      @Override
      public void onCreate() {
        super.onCreate();
        ArrayList<String> invocationEvents = new ArrayList<>();
        invocationEvents.add(InstabugFlutterPlugin.INVOCATION_EVENT_SHAKE);
        new InstabugFlutterPlugin().start(CustomFlutterApplication.this, "<API KEY>", invocationEvents);
      }
    }

在您的AndroidManifest.xml中使用

  1. ,用android:name=".CustomFlutterApplication"

替换android:name="io.flutter.app.FlutterApplication"

  1. In your project level build.gradle,

(在您的项目级build.gradle中使用)

代码语言:javascript
复制
    allprojects {
        repositories {
            maven {
                url "https://sdks.instabug.com/nexus/repository/instabug-cp"
            }
        }
    }

  1. 现在生成您的项目
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65800284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档