d

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.

15 St Margarets, NY 10033
(+381) 11 123 4567
ouroffice@aware.com

 

KMF

Integrating AppGallery Connect Crash in a Xamarin App for Android

Today, we are going to take a look at how we can integrate the AppGallery Connect crash service into your Xamarin app.

But why might you want to do this? The AppGallery Connect Crash service provides a powerful yet lightweight solution to app crash problems. With the service, you can quickly detect, locate, and resolve app crashes (unexpected exits of apps), and have access to highly readable crash reports in real-time, without the need to write any code.

The service is completely free to use and can be a great addition to your project!

Below is a simple app example you can follow along with to get a good idea of how you might use this service in your own app!

Preparing the Xamarin Environment and Configuring Your Project

Install the Xamarin environment.

You’ll need to install Visual Studio first, and then select Mobile development with .NET in Visual Studio to install the Xamarin environment. 

Installing Visual Studio.

Create a project in AppGallery Connect and enable HUAWEI Analytics for your project.

Install the service SDK. Right-click your project and choose Manage NuGet Packages

Installing the services.

Search for crash on the Browse tab. Click Xamarin.Android bindings for HMS Core — AgconnectCrash in the search results, and install it. 

Search for Crash.

Add the JSON file to the Assets directory.

Add the JSON file.

Next, implement LazyInputStream to read the agconnect-services.json file. For details, please refer to Getting Started with Xamarin. Finally, set a package name in Android Manifest.

Set a package name.

Example Application

Let’s start by creating a simple layout that has three buttons. 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="vertical">

        <Button
            android:id="@+id/btn_crash"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAllCaps="false"
            android:text="MakeCrash" />

        <Button
            android:id="@+id/btnRecordException"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAllCaps="false"
            android:text="CatchException" />

        <Button
            android:id="@+id/btnCustomReport"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAllCaps="false"
            android:text="CustomReport" />

    </LinearLayout>
</LinearLayout>

String app name.

In the MainActivity.cs file, call * AGConnectCrash.Instance.TestIt* to trigger a crash.

  • Call AGConnectCrash.Instance.SetUserId to set a custom user ID.
  • Call AGConnectCrash.Instance.SetCustomKey to set the key and value for a custom key-value pair. 
  • Call AGConnectCrash.Instance.Log to set the log level.
  • Call AGConnectCrash.Instance.RecordException to record a non-fatal exception.
private void BtnCreateCrash_Click(object sender, EventArgs e) {
  AGConnectCrash.Instance.TestIt(this);
}

private void BtnCustomReport_Click(object sender, EventArgs e) {
  AGConnectCrash.Instance.SetUserId("testuser");
  AGConnectCrash.Instance.SetCustomKey("doublekey", "1.1");
  AGConnectCrash.Instance.SetCustomKey("floatkey", "1.12f");
  AGConnectCrash.Instance.SetCustomKey("intkey", "123");
  AGConnectCrash.Instance.SetCustomKey("stringkey", "hello world");
  AGConnectCrash.Instance.Log("default log level");
  AGConnectCrash.Instance.Log(3, "3 is debug log level");

}

private void BtnRecordException_Click(object sender, EventArgs e) {
  try {
    ArrayIndexOutOfBoundsException arrayIndexOutOfBoundsException = new ArrayIndexOutOfBoundsException();
    throw arrayIndexOutOfBoundsException;
  } catch (Java.Lang.Exception ex) {
    AGConnectCrash.Instance.RecordException(ex);
  }
}

View the Crash Report

Tap MakeCrash, CatchException, and CustomReport in sequence, and check the report in AppGallery Connect.

Crash statistics: 

Crash statistics screenshot.

Exceptions:
Exceptions screenshot.

Debugging:
Debugging screenshot.

View custom key-value pairs:
Custom key-value pairs.

View custom log level:
Custom log-level view.

View custom user IDs:
Custom user IDs.

For more information, please refer to the following:

Credit: Source link

Previous Next
Close
Test Caption
Test Description goes like this