无法在firebase分析调试视图中查看事件

时间:2017-05-25 05:21:55

标签: android firebase google-analytics firebase-analytics

我正在尝试使用firebase分析运行示例应用。我按照firebase分析指南记录测试事件,但我在调试视图中看不到任何事件。我在主要活动上记录了一个测试事件,如下所示:

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);
    }
}

我使用以下命令在调试视图中查看我的事件:

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

我用以下命令看到日志:

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

我想问题可能是日志中出现的空指针异常(最后一行):

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)

我搜索了很多,只是找到this link关于上面的例外情况,说明它必须是来自其他应用程序的错误。但每当我的活动恢复时,就会发生此异常。我不认为在我的情况下,此异常是由其他应用程序引起的。

我多次检查我的示例应用程序,以便每个配置都与指南说的完全一样。你知道可能出现什么问题吗?

5 个答案:

答案 0 :(得分:2)

要在已连接的Android测试设备上为已配置的Firebase Analytics应用程序发送DebugView数据,请执行以下命令:

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

此行为将持续存在,直到您通过执行以下命令显式禁用它:

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

iOS测试设备设置就像Android一样简单,只需相应地使用Xcode命令行参数:

-FIRDebugEnabled 和

-FIRDebugDisabled

答案 1 :(得分:0)

试试这个

  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);
   }

您可以使用一系列adb命令启用详细日志记录:

adb shell setprop log.tag.FA VERBOSE

adb shell setprop log.tag.FA-SVC VERBOSE

adb logcat -v time -s FA FA-SVC

参考:https://firebase.google.com/docs/analytics/android/start/

答案 2 :(得分:0)

我改变了我的开发Android手机,它开始工作了。它与三星SM-P601和华为Y560-U02配合使用,但它一直在为Android手机三星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)

我在这三部手机中查看了谷歌播放服务版本,所有这些都是相同的。我不知道是什么导致SM-J120F无法工作。

答案 3 :(得分:0)

执行启用调试模式后,请确保调试设备或模拟器以及电脑中的日期和时间是正确的。

答案 4 :(得分:0)

不是为我工作。但是从日志中,我发现您也需要添加风味名称。因此,我有一个名为“ internal”的风格,必须在上面的adb命令中编写com.package.name.internal。