E/Trace:打开跟踪文件时出错:没有那个文件或目录(2)

E/Trace﹕ error opening trace file: No such file or directory (2)

我最近开始将 Google 分析集成添加到我的应用程序中。为此,我一直按照此处提供的步骤操作:https://developers.google.com/analytics/devguides/collection/android/v4/

我没有应用程序 class 所以我用此处提供的基本实现创建了一个应用程序: http://www.javacodegeeks.com/2014/04/working-with-google-analytics-api-v4-for-android.html

在每个 Activity 中,我添加了以下片段:

@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);
    //...
}

我开始在相应的分析页面上看到实时用户。

无论出于何种原因,当我从 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" />

我目前的测试设备是 LG Lucid 2 (vs870) 运行 Android 4.1.2

如果我还应该包含任何其他代码片段,请随时询问。

注意:我检查了我以前的标签,没有出现这个问题,所以它一定与创建此应用程序有关 class、src/main/res/xml/app_tracker.xmlsrc/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);

找到了! Google Analytics SDK 中的错误在使用 XML 进行 GA 全局配置时导致 ANR。也就是说,您不能使用此元标记:

<!-- 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" />

有关更多信息,请参阅这个惊人的答案: