我正在将Google Analytics v.4应用到我的应用中。 我在跟踪器方面遇到了问题。
这是代码
public class FactsActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fun_facts);
Tracker t = ((Analytics) getApplication()).getTracker(
Analytics.TrackerName.APP_TRACKER);
t.setScreenName("OLOLO");
t.send(new HitBuilders.AppViewBuilder().build());
我的行
出错了 Tracker t = ((Analytics) getApplication()).getTracker(Analytics.TrackerName.APP_TRACKER);
它是:" 不可转换的类型:无法投射' android.app.Application'到' com.tomtom.facts.Analytics '
我一直在寻找解决方案,正如我所见,我应该修改我的AndroidManifest.xml以包含" android:name = ..."进入"应用"标签。但我无法做到。它会出现错误:' com.tomtom.facts.Analytics'无法分配给' android.app.Application' 。
请帮忙!我完全被卡住了。
此处的Google Analytics
public class Analytics extends Activity {
public enum TrackerName {
APP_TRACKER,
GLOBAL_TRACKER,
E_COMMERCE_TRACKER,
}
HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();
synchronized Tracker getTracker(TrackerName trackerId) {
if (!mTrackers.containsKey(trackerId)) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker("UA-*******-1")
: (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker)
: analytics.newTracker(R.xml.ecommerce_tracker);
mTrackers.put(trackerId, t);
}
return mTrackers.get(trackerId);
}
}
答案 0 :(得分:0)
右边的行是:
Tracker t = (Tracker) getApplication().getTracker(Analytics.TrackerName.APP_TRACKER);
问题可能是你把括号放在错误的地方。您试图转换getApplication()
返回的对象。
此外,你可能需要转换为Tracker
而不是Analytics