Search code examples
javaandroidmetricscode-metrics

Attempt to read from field in AndroidDevMetrics on a null object reference


I am trying to implement frogermcs/AndroidDevMetrics library in my project

This is the link: https://github.com/frogermcs/AndroidDevMetrics

I followed these steps to integrate AndroidDevMetrics into my project.

Added these in build.gradle

buildscript {
  repositories {
    jcenter()
  }

  dependencies {
    classpath 'com.frogermcs.androiddevmetrics:androiddevmetrics-plugin:0.7'
  }
}

apply plugin: 'com.android.application'
apply plugin: 'com.frogermcs.androiddevmetrics

Then in your Activity class:

@Override
public void onCreate() {
    super.onCreate();
    //Use it only in debug builds
    if (BuildConfig.DEBUG) {
        AndroidDevMetrics.initWith(this);
    }
}

For this when i run my project and came to that activity where init code is. The app crash with the statement:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mycompany.project/com.mycompany.project.activities.LoginActivity}: java.lang.NullPointerException: Attempt to read from field 'int com.frogermcs.androiddevmetrics.internal.metrics.ActivityLifecycleMetrics$ActivityLifecycleMetric.state' on a null object reference

And here are some other logs from middle of logs

Caused by: java.lang.NullPointerException: Attempt to read from field 'int com.frogermcs.androiddevmetrics.internal.metrics.ActivityLifecycleMetrics$ActivityLifecycleMetric.state' on a null object reference at com.frogermcs.androiddevmetrics.internal.metrics.ActivityLifecycleMetrics.logPostOnStart(ActivityLifecycleMetrics.java:88) at com.frogermcs.androiddevmetrics.internal.metrics.ActivityLaunchMetrics.onActivityStarted(ActivityLaunchMetrics.java:43)

Please guide me where i am wrong. or how to solve this issue to getting AndroidDevMetrics into work. Thanks

Gradle Version: 5.0

Android Plugin Version: 3.3.0

AndroidDevMetrics Library Version: 0.7


Solution

  • The below code should be in your application class

    public class ExampleApplication extends Application {
    
     @Override
     public void onCreate() {
         super.onCreate();
         //Use it only in debug builds
         if (BuildConfig.DEBUG) {
             AndroidDevMetrics.initWith(this);
         }
      }
     }
    

    And in you Manifest please add below lines of code

    <application
            android:name=".ExampleApplication "
    -----        
    </application>