安卓Google Analytics集成错误

9

当我尝试在我的活动中获取跟踪器时,它显示错误 - 在Google Analytics v4中,“getActivity()”方法未定义

// Get tracker.
    Tracker t = ((AnalyticsSampleApp) getActivity().getApplication())
            .getTracker(TrackerName.APP_TRACKER);

如果你从Activity中调用这段代码,那么请移除getActivity(); 如果你从Fragment中调用这段代码,则保留它。 - Android is everything for me
谢谢,它可以工作,但是它显示错误java.lang.ClassCastException:android.app.Application无法转换为com.example.analys.AnalyticsSampleApp。 - user3736720
使用以下代码获取跟踪器: Tracker t = ((AnalyticsSampleApp)getApplication()).getTracker(TrackerName.APP_TRACKER); - rupesh
谢谢回答,我已经这样做了,但错误仍然存在,请查看下面的清单文件。 - user3736720
2个回答

23
如果您还没有这样做,请为您的应用程序创建一个名为MyApplication的类,继承自Application类,并确保按照以下方式将其添加到您的清单中(这里重要的属性是android:name,我已经删除了其他xml属性以便更加清晰)。
<application
    android:name="mypackagename.MyApplication"
    ... >

然后,在您的MyApplication类中,按照Google Analytics v4文档https://developers.google.com/analytics/devguides/collection/android/v4/#tracking-methods创建一个名为getTracker的方法。

接下来,使用:

Tracker t = ((MyApplication) getApplication())
        .getTracker(TrackerName.APP_TRACKER);

请检查清单文件。 - user3736720
太好了!这些都没有在Google Analytics开发者指南中提到。谢谢! - Mulgard

0

我之前也遇到了这个问题。为了解决它,我按照上面提到的方法,除了在清单文件中将android:name添加为.MyApplication之外,还删除了getActivity()。然而,我需要在TrackerName之前添加MyApplication,如下所示。

Tracker t = ((MyApplication) getApplication()).getTracker(MyApplication.TrackerName.APP_TRACKER);

希望这能有所帮助


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接