我最近开始将Google Analytics集成添加到我的应用程序中。为此,我一直按照此处提供的步骤进行操作:https://developers.google.com/analytics/devguides/collection/android/v4/
我没有Application类,所以我用这里提供的基本实现创建了一个: http://www.javacodegeeks.com/2014/04/working-with-google-analytics-api-v4-for-android.html
在每个活动中,我添加了以下代码段:
@Override
protected void onStart() {
super.onStart();
//Get an Analytics tracker to report app starts & uncaught exceptions etc.
GoogleAnalytics.getInstance(this).reportActivityStart(this);
}
@Override
protected void onStop() {
super.onStop();
//Stop the analytics tracking
GoogleAnalytics.getInstance(this).reportActivityStop(this);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Get a Tracker (should auto-report)
((MyApplication) getApplication()).getTracker(MyApplication.TrackerName.APP_TRACKER);
//...
}
我开始在相应的Google Analytics页面上看到实时用户。
无论出于何种原因,当我通过Android Studio的全新安装启动应用程序时,它运行正常。但是,当我通过任务管理器终止应用程序并再次启动它时,它只显示一个空白屏幕,并提供以下错误。
E/Trace﹕ error opening trace file: No such file or directory (2)
D/ActivityThread﹕ setTargetHeapUtilization:0.25
D/ActivityThread﹕ setTargetHeapIdealFree:8388608
D/ActivityThread﹕ setTargetHeapConcurrentStart:2097152
W/dalvikvm﹕ VFY: unable to resolve virtual method 36489: Ljava/lang/ReflectiveOperationException;.printStackTrace ()V
W/dalvikvm﹕ VFY: unable to resolve virtual method 11845: Landroid/view/ViewGroup;.onRtlPropertiesChanged (I)V
W/dalvikvm﹕ VFY: unable to resolve virtual method 11842: Landroid/view/ViewGroup;.onNestedScrollAccepted (Landroid/view/View;Landroid/view/View;I)V
W/dalvikvm﹕ VFY: unable to resolve virtual method 11848: Landroid/view/ViewGroup;.onStopNestedScroll (Landroid/view/View;)V
W/dalvikvm﹕ VFY: unable to resolve virtual method 9471: Landroid/support/v7/internal/widget/ActionBarOverlayLayout;.stopNestedScroll ()V
W/dalvikvm﹕ VFY: unable to resolve virtual method 565: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
W/dalvikvm﹕ VFY: unable to resolve virtual method 587: Landroid/content/res/TypedArray;.getType (I)I
我觉得我在这里遗漏了一些超级基本的东西。有人能指出我正确的方向吗?
我查看了Stack Overflow上的一些相关问题,它看起来并不像我目前的情况。
我正在使用播放服务版本65870000
,并在我的清单中添加以下两行:
<!--This meta-data tag is required to use Google Play Services.-->
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<!-- Google Analytics Version v4 needs this value for easy tracking -->
<meta-data
android:name="com.google.android.gms.analytics.globalConfigResource"
android:resource="@xml/global_tracker" />
我目前的测试设备是运行Android 4.1.2的LG Lucid 2(vs870)
如果还有我应该提供的任何其他代码段,请随时提出。
注意:我检查了我之前的标记,但此问题不存在,因此必须与创建此Application类src/main/res/xml/app_tracker.xml
和src/main/res/xml/global_tracker.xml
配置文件并添加相关活动中需要的分析设置代码。
提前感谢您的任何帮助或建议!
修改:如果我从MainActivity中删除以下行,则应用每次都会正常启动:
// onStart
GoogleAnalytics.getInstance(this).reportActivityStart(this);
// onStop
GoogleAnalytics.getInstance(this).reportActivityStop(this);
// onCreate
((MyApplication) getApplication()).getTracker(MyApplication.TrackerName.APP_TRACKER);
答案 0 :(得分:0)
<!-- Google Analytics Version v4 needs this value for easy tracking -->
<meta-data
android:name="com.google.android.gms.analytics.globalConfigResource"
android:resource="@xml/global_tracker" />
更多地看到这个惊人的答案: https://stackoverflow.com/a/27542483/740474