Android 开发:Google Analytics Tracker 不工作
Android development: Google Analytics Tracker doesn't work
我还在 SO 上检查了其他答案,但我的 Google Analytics Tracker 无法正常工作。
我按照 Google 文档进行了全部设置:https://developers.google.com/analytics/devguides/collection/android/v4/advanced
我创建了一个名为 gA.java
的 Class 和一个名为 MainActivity.java
的主要 class。这是我的 gA
class:
import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.Tracker;
import java.util.HashMap;
public class gA extends MainActivity {
private static final String PROPERTY_ID = "UA-xxx-5";
public enum TrackerName {
APP_TRACKER, // Tracker used only in this app.
GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company.
}
HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();
public gA() {
super();
}
synchronized Tracker getTracker(TrackerName trackerId) {
if (!mTrackers.containsKey(trackerId)) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID)
: (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker)
: analytics.newTracker(R.xml.global_tracker);
mTrackers.put(trackerId, t);
}
return mTrackers.get(trackerId);
}
}
这是我的主要 class MainActivity
中 onCreate 方法的一部分,您还可以在其中看到错误:
在 SO 的其他答案中,他们建议删除 getApplication
,但它仍然不起作用。
还有一些建议,例如将 android:name 添加到我在 <application
中的清单中,但这也显示了一个错误:
我认为问题出在你的 gA class 扩展了 MainActivity
而它应该扩展 Application
class。使用您自己的应用程序 class 将帮助您获得跟踪器的单个实例,并将解决您的类型不匹配问题。
希望对您有所帮助。
我还在 SO 上检查了其他答案,但我的 Google Analytics Tracker 无法正常工作。
我按照 Google 文档进行了全部设置:https://developers.google.com/analytics/devguides/collection/android/v4/advanced
我创建了一个名为 gA.java
的 Class 和一个名为 MainActivity.java
的主要 class。这是我的 gA
class:
import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.Tracker;
import java.util.HashMap;
public class gA extends MainActivity {
private static final String PROPERTY_ID = "UA-xxx-5";
public enum TrackerName {
APP_TRACKER, // Tracker used only in this app.
GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company.
}
HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();
public gA() {
super();
}
synchronized Tracker getTracker(TrackerName trackerId) {
if (!mTrackers.containsKey(trackerId)) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID)
: (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker)
: analytics.newTracker(R.xml.global_tracker);
mTrackers.put(trackerId, t);
}
return mTrackers.get(trackerId);
}
}
这是我的主要 class MainActivity
中 onCreate 方法的一部分,您还可以在其中看到错误:
在 SO 的其他答案中,他们建议删除 getApplication
,但它仍然不起作用。
还有一些建议,例如将 android:name 添加到我在 <application
中的清单中,但这也显示了一个错误:
我认为问题出在你的 gA class 扩展了 MainActivity
而它应该扩展 Application
class。使用您自己的应用程序 class 将帮助您获得跟踪器的单个实例,并将解决您的类型不匹配问题。
希望对您有所帮助。