6

I'm trying to run a sample app with firebase analytics. I followed the firebase analytics guides to log a test event but I cannot see any events in the debug view. I log a test event on my main activity as below:

public class MainActivity extends AppCompatActivity
{
    private FirebaseAnalytics mFirebaseAnalytics;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);

        Bundle bundle = new Bundle();
        bundle.putString("test_parameter", "test_value");
        mFirebaseAnalytics.logEvent("test_event", bundle);
    }
}

And I use the following command to see my events in the debug view:

adb shell setprop debug.firebase.analytics.app com.example.firebaseanalyticssample

And I see the logs with the following commands:

adb shell setprop log.tag.FA VERBOSE
adb shell setprop log.tag.FA-SVC VERBOSE
adb logcat -v time -s FA FA-SVC

I think maybe the problem is the null pointer exception appeared in the logs (the last line):

05-25 09:25:53.056 V/FA      (21533): Processing queued up service tasks: 2
05-25 09:25:53.086 V/FA-SVC  ( 5655): Logging event: origin=auto,name=_e,params=Bundle[mParcelledData.dataSize=132]
05-25 09:25:53.101 V/FA-SVC  ( 5655): Saving event, name, data size: _e, 87
05-25 09:25:53.106 V/FA-SVC  ( 5655): Event recorded: Event{appId='com.example.firebaseanalyticssample', name='_e', params=Bundle[{_o=auto, _r=1, _et=52395, _sc=MainActivity, _si=-5268297315019047641, _dbg=1}]}
05-25 09:25:53.106 V/FA-SVC  ( 5655): Upload scheduled in approximately ms: 500
05-25 09:25:53.111 V/FA-SVC  ( 5655): Background event processing time, ms: 31
05-25 09:25:53.621 V/FA-SVC  ( 5655): Device receiver got: com.google.android.gms.measurement.UPLOAD
05-25 09:25:53.646 V/FA-SVC  ( 5655): Device PackageMeasurementService called. startId, action: 194, com.google.android.gms.measurement.UPLOAD
05-25 09:25:53.651 D/FA-SVC  ( 5655): Uploading events. Elapsed time since last upload attempt (ms): 544
05-25 09:25:53.666 E/FA-SVC  ( 5655): Task exception on worker thread: java.lang.NullPointerException: Attempt to invoke virtual method 'long java.lang.Long.longValue()' on a null object reference: vgq.s(:com.google.android.gms:2650)

I searched a lot and just found this link regarding the exception above that says it must be an error from another application. but whenever my activity is resumed this exception occurs. I don't think that in my case this exception is caused by another apps.

I checked my sample app a lot of times so that every configuration would be exactly as the guides say. Have you any idea what can be the problem?

6 Answers 6

1

After performing Enabling debug mode make sure that date&time in your debug device or emulator and in your pc is correct.

0

I changed my development android phone and it got worked. it got worked with samsung SM-P601 and Huawei ِY560-U02 but it just kept throwing the exception below for android mobile phone samsung SM-J120F:

05-25 09:25:53.666 E/FA-SVC  ( 5655): Task exception on worker thread: java.lang.NullPointerException: Attempt to invoke virtual method 'long java.lang.Long.longValue()' on a null object reference: vgq.s(:com.google.android.gms:2650)

I checked google play services version in these three mobile phones and it was the same in all of them. I don't know what causes SM-J120F not to work.

1
  • Same problem, it works with one samsung but with another one it doesn't o_O.
    – mrroboaat
    Commented Sep 26, 2017 at 9:53
0

Try this

  private FirebaseAnalytics mFirebaseAnalytics;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mFirebaseAnalytics = FirebaseAnalytics.getInstance(getApplicationContext());

    mFirebaseAnalytics.setAnalyticsCollectionEnabled(true);

    mFirebaseAnalytics.setMinimumSessionDuration(10000);

    mFirebaseAnalytics.setSessionTimeoutDuration(300);


    Bundle bundle = new Bundle();
    bundle.putString(FirebaseAnalytics.Param.ITEM_ID,"ID");
    bundle.putString(FirebaseAnalytics.Param.ITEM_NAME,"NAME");
    bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE,"image");

   mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
   }

You can enable verbose logging with a series of adb commands:

adb shell setprop log.tag.FA VERBOSE

adb shell setprop log.tag.FA-SVC VERBOSE

adb logcat -v time -s FA FA-SVC

REF: https://firebase.google.com/docs/analytics/android/start/

1
  • 1
    it didn't make any difference. Commented May 25, 2017 at 7:44
0

To enable sending of DebugView data on a connected Android test device for a configured Firebase Analytics app, execute the following command:

adb shell setprop debug.firebase.analytics.app <package_name>

This behavior persists until you explicitly disable it by executing the following command:

adb shell setprop debug.firebase.analytics.app .none.

iOS test device setup is as easy as Android, just use there Xcode command line arguments correspondingly:

–FIRDebugEnabled and

–FIRDebugDisabled

4
  • 1
    This is a simple copy-and-paste of the documentation. No value is added to answering the OP's question. Commented Apr 21, 2021 at 17:10
  • But someone might miss it that might cause the problem, right? Did you face the same issue or just try to post a negative comment?
    – HDT
    Commented May 4, 2021 at 8:23
  • Fair enough. I agree that my initial wording was too strong. I just hope that the answer was transparent about its borrowed content and included a reference to the original documentation. Commented May 4, 2021 at 18:49
  • ok, no problem. Even though there is already having a mention in the document but I would like to highlight it again. The main reason is Firebase famous libraries did well wrap up. So it doesn't work that might cause by the missing reading document. Our developer also faced the same issue.
    – HDT
    Commented May 5, 2021 at 2:10
0

Didn't work for me. But from logs, I've found that you need to add flavor name too. So, I had a flavor named "internal" and had to write com.package.name.internal in that adb command above.

0
0

In my case, I was using illegal characters in the name field.

Logcat gave the hint why this was happening to me: I was using a blank space in the name, which is illegal. You can only use [A-Za-z0-9_].

Here my error message:

E/FA: Name must consist of letters, digits or _ (underscores).

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.