我正在尝试使用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关于上面的例外情况,说明它必须是来自其他应用程序的错误。但每当我的活动恢复时,就会发生此异常。我不认为在我的情况下,此异常是由其他应用程序引起的。
我多次检查我的示例应用程序,以便每个配置都与指南说的完全一样。你知道可能出现什么问题吗?
答案 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。