Reputation: 439
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?
Upvotes: 6
Views: 17838
Reputation: 460
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).
Upvotes: 0
Reputation: 5256
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.
Upvotes: 0
Reputation: 2047
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
Upvotes: 0
Reputation: 421
After performing Enabling debug mode make sure that date&time in your debug device or emulator and in your pc is correct.
Upvotes: 1
Reputation: 1
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/
Upvotes: 0
Reputation: 439
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.
Upvotes: 0