Android - 使用 Google 分析时屏幕上没有任何内容
Android - Nothing on screen when Google Analytics used
我已经在我的应用程序上实施了 Google 分析 API,但是当我尝试发送曲目时,无法呈现屏幕。
我的申请 class (ETApp.class
):
private static final String PROPERTY_ID = "XX-XXXXXXXX-1";
public static int GENERAL_TRACKER = 0;
public enum TrackerName {
APP_TRACKER, GLOBAL_TRACKER, ECOMMERCE_TRACKER,
}
public HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();
...
public synchronized Tracker getTracker(TrackerName appTracker) {
if (!mTrackers.containsKey(appTracker)) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
Tracker t = (appTracker == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID) : (appTracker == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker) : analytics.newTracker(R.xml.ecommerce_tracker);
mTrackers.put(appTracker, t);
}
return mTrackers.get(appTracker);
}
MainActivity.java(在 onCreate 事件中):
Tracker t = ((ETApp) this.getApplication()).getTracker(ETApp.TrackerName.APP_TRACKER);
t.setScreenName("MainActivity");
t.send(new HitBuilders.AppViewBuilder().build());
app_tracker.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="ga_trackingId">XX-XXXXXXXX-1</string>
<bool name="ga_autoActivityTracking">true</bool>
<bool name="ga_reportUncaughtExceptions">true</bool>
<string name="ga_appName">MyAppName</string>
<string name="ga_appVersion">0.0.1</string>
<bool name="ga_debug">true</bool>
<item name="ga_dispatchPeriod" format="integer" type="integer">120</item>
<string name="ga_sampleFrequency">90</string>
<bool name="ga_anonymizeIp">true</bool>
<bool name="ga_dryRun">false</bool>
<string name="ga_sampleFrequency">100.0</string>
<integer name="ga_sessionTimeout">-1</integer>
<string name="com.myapp.name">MainActivity</string>
</resources>
ecommerce_tracker.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="ga_sessionTimeout">60</integer>
<string name="ga_trackingId">XX-XXXXXXXX-1</string>
</resources>
global_tracker.xml
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:ignore="TypographyDashes">
<integer name="ga_sessionTimeout">300</integer>
<bool name="ga_autoActivityTracking">true</bool>
<screenName name="com.google.android.gms.analytics.samples.mobileplayground.ScreenviewFragment">
MyApp ScreenViewScreen
</screenName>
<screenName name="com.google.android.gms.analytics.samples.mobileplayground.EcommerceFragment">
MyApp EcommerceScreen
</screenName>
<string name="ga_trackingId">XX-XXXXXXXX-1</string>
</resources>
我也将元标签放入标签之间的清单中:
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.gms.analytics.globalConfigResource"
android:resource="@xml/global_tracker" />
但是当我 运行 我的应用程序出现此屏幕时,没有其他任何反应。此外,我有时可以在仪表板上进行跟踪,但并非总是如此。可能是什么问题?
编辑: 它也不记录 GoogleAnalyticsTracker
您可能正在使用 Google Play Services 6.5,并且在 GoogleAnalytics.getInstance - GoogleAnalytics.getInstance(this) not respond
中遇到死锁
尝试升级到 Google Play Services 7.0 或更高版本。死锁错误已在 GPS 7.0 中修复。
我已经在我的应用程序上实施了 Google 分析 API,但是当我尝试发送曲目时,无法呈现屏幕。
我的申请 class (ETApp.class
):
private static final String PROPERTY_ID = "XX-XXXXXXXX-1";
public static int GENERAL_TRACKER = 0;
public enum TrackerName {
APP_TRACKER, GLOBAL_TRACKER, ECOMMERCE_TRACKER,
}
public HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();
...
public synchronized Tracker getTracker(TrackerName appTracker) {
if (!mTrackers.containsKey(appTracker)) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
Tracker t = (appTracker == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID) : (appTracker == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker) : analytics.newTracker(R.xml.ecommerce_tracker);
mTrackers.put(appTracker, t);
}
return mTrackers.get(appTracker);
}
MainActivity.java(在 onCreate 事件中):
Tracker t = ((ETApp) this.getApplication()).getTracker(ETApp.TrackerName.APP_TRACKER);
t.setScreenName("MainActivity");
t.send(new HitBuilders.AppViewBuilder().build());
app_tracker.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="ga_trackingId">XX-XXXXXXXX-1</string>
<bool name="ga_autoActivityTracking">true</bool>
<bool name="ga_reportUncaughtExceptions">true</bool>
<string name="ga_appName">MyAppName</string>
<string name="ga_appVersion">0.0.1</string>
<bool name="ga_debug">true</bool>
<item name="ga_dispatchPeriod" format="integer" type="integer">120</item>
<string name="ga_sampleFrequency">90</string>
<bool name="ga_anonymizeIp">true</bool>
<bool name="ga_dryRun">false</bool>
<string name="ga_sampleFrequency">100.0</string>
<integer name="ga_sessionTimeout">-1</integer>
<string name="com.myapp.name">MainActivity</string>
</resources>
ecommerce_tracker.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="ga_sessionTimeout">60</integer>
<string name="ga_trackingId">XX-XXXXXXXX-1</string>
</resources>
global_tracker.xml
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:ignore="TypographyDashes">
<integer name="ga_sessionTimeout">300</integer>
<bool name="ga_autoActivityTracking">true</bool>
<screenName name="com.google.android.gms.analytics.samples.mobileplayground.ScreenviewFragment">
MyApp ScreenViewScreen
</screenName>
<screenName name="com.google.android.gms.analytics.samples.mobileplayground.EcommerceFragment">
MyApp EcommerceScreen
</screenName>
<string name="ga_trackingId">XX-XXXXXXXX-1</string>
</resources>
我也将元标签放入标签之间的清单中:
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.gms.analytics.globalConfigResource"
android:resource="@xml/global_tracker" />
但是当我 运行 我的应用程序出现此屏幕时,没有其他任何反应。此外,我有时可以在仪表板上进行跟踪,但并非总是如此。可能是什么问题?
编辑: 它也不记录 GoogleAnalyticsTracker
您可能正在使用 Google Play Services 6.5,并且在 GoogleAnalytics.getInstance - GoogleAnalytics.getInstance(this) not respond
中遇到死锁尝试升级到 Google Play Services 7.0 或更高版本。死锁错误已在 GPS 7.0 中修复。