当前位置: 首页 > 知识库问答 >
问题:

谷歌分析V4 - 字符串xml配置名称无法识别:ga_trackingId

岑熙云
2023-03-14

我正在尝试将谷歌分析纳入我的Android项目。上次我使用它时是V2,效果很好。

现在我对这个有问题

11-10 20:15:35.493 1957-1957/com.xxx W/GAv4: Int xml configuration name not recognized: ga_sessionTimeout
11-10 20:15:35.508 1957-1957/com.xxx W/GAv4: Bool xml configuration name not recognized: ga_autoActivityTracking
11-10 20:15:35.508 1957-1957/com.xxx W/GAv4: String xml configuration name not recognized: ga_trackingId

全局跟踪.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>
    <string name="ga_trackingId">UA-10009718-55</string>

    <!-- the Local LogLevel for Analytics -->
    <string name="ga_logLevel">verbose</string>

    <!-- how often the dispatcher should fire -->
    <integer name="ga_dispatchPeriod">30</integer>

    <!-- Treat events as test events and don't send to google -->
    <bool name="ga_dryRun">false</bool>

    <screenName name=".MainActivity">MainActivity</screenName>

</resources>

应用程序跟踪.xml

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="TypographyDashes">
    <string name="ga_trackingId">UA-10009718-55</string>
    <bool name="ga_autoActivityTracking">true</bool>
    <bool name="ga_reportUncaughtExceptions">true</bool>
    <string name="ga_appName">GoogleAnalyticsApp</string>
    <string name="ga_appVersion">1.1.3</string>
    <bool name="ga_debug">true</bool>
    <item name="ga_dispatchPeriod" format="integer" type="integer">120</item>
    <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.xxx">Sounds</string>

</resources>

package com.xxx;


import java.util.HashMap;
import android.app.Application;
import android.util.Log;

import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.Tracker;



public class GoogleAnalyticsApp extends Application {

    private static final String PROPERTY_ID = "UA-10009718-55";

    public static int GENERAL_TRACKER = 0;

    public enum TrackerName {
        APP_TRACKER, GLOBAL_TRACKER, ECOMMERCE_TRACKER,
    }

    public HashMap mTrackers = new HashMap();

    public GoogleAnalyticsApp() {
        super();
    }

    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.app_tracker) : analytics.newTracker(R.xml.ecommerce_tracker);


           // Tracker t = analytics.newTracker(PROPERTY_ID);
            mTrackers.put(appTracker, t);
        }
        return (Tracker) mTrackers.get(appTracker);
    }
}

也为AndroidManifest添加了必要的行。

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

<!-- Optionally, register AnalyticsReceiver and AnalyticsService to support background
     dispatching on non-Google Play devices -->
<receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver" android:enabled="true">
    <intent-filter>
        <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
    </intent-filter>
</receiver>
<service android:name="com.google.android.gms.analytics.AnalyticsService" android:enabled="true" android:exported="false" />

<!-- Optionally, register CampaignTrackingReceiver and CampaignTrackingService to enable
             installation campaign reporting -->
<receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver" android:exported="true">
    <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER" />
    </intent-filter>
</receiver>
<service android:name="com.google.android.gms.analytics.CampaignTrackingService" />

当我启用干运行时,我在日志中看到它收集ID和其他信息以进行发送。但是当禁用时,什么都没有发生。

共有1个答案

斜浩穰
2023-03-14

不知道是不是太晚了,但我和你有同样的事情,因为我在这里和这里学习谷歌的教程。

但是,在测试时,我发现有几个服务没有在清单文件中定义,我在这里找到了解决方案,您可能也有,因为您已经正确地这样做了。

现在,对于可能丢失的部分,我在res/xml文件夹中定义了两个文件,< code>app_tracker.xml和< code>global_tracker.xml。

在第一个< code>app_tracker.xml中,我定义了以下内容:

<!-- Replace placeholder ID with your tracking ID -->
<string name="ga_trackingId" tools:ignore="TypographyDashes" translatable="false">UA-????????-?</string>

<!-- Percentage of events to include in reports -->
<string name="ga_sampleFrequency" translatable="false">100.0</string>

<!-- Enable automatic Activity measurement -->
<bool name="ga_autoActivityTracking">true</bool>

<!-- catch and report uncaught exceptions from the app -->
<bool name="ga_reportUncaughtExceptions">true</bool>

<!-- How long a session exists before giving up -->
<integer name="ga_sessionTimeout">-1</integer>

<!-- Screen names Override -->
<screenName name="com.example.analytics.MainActivity">Main Screen</screenName>
<!-- other screens -->

在应用程序类上声明它时,我使用的是app_tracker.xml,例如

public synchronized Tracker getDefaultTracker() {
    if (mTracker == null) {
        GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
        mTracker = analytics.newTracker(R.xml.app_tracker);
    }
    return mTracker;
}

至于global_tracker。xml,我有以下内容:

<!-- the Local LogLevel for Analytics -->
<string name="ga_logLevel">verbose</string>

<!-- how often the dispatcher should fire -->
<integer name="ga_dispatchPeriod">60</integer>

<!-- Send hits to Google Analytics. true = don't send -->
<bool name="ga_dryRun">false</bool>

我通过在清单文件中定义它来使用它,例如:

<meta-data android:name="com.google.android.gms.analytics.globalConfigResource" android:resource="@xml/global_tracker" />

有了这个,我没有那些配置名称无法识别的警告,并且我有在分析概述上收到的命中

希望我能够帮助:)

 类似资料:
  • 这是我的Hibernate配置文件。错误堆栈跟踪为: 这是我的连接处理程序。java代码是: 下面的代码段调用ConnectionHandler。java: 我不知道为什么解析配置文件时会出现错误。我试着改变 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"到"http://www.hibernate.org/dt

  • 我刚开始使用openNLP来识别名字。我使用的是open NLP附带的模型(en-ner-person.bin)。我注意到,虽然它可以识别美国、英国和欧洲的名字,但它不能识别印度或日本的名字。我的问题是(1)是否已经有模型,我可以用来识别外国名字(2)如果没有,那么我相信我将需要生成新的模型。在这种情况下,是否有一个可供我使用的copora?

  • 我有一个这样的字符串,当我试图解析它时,它出现在JSON < code > processing data call \ \ u 007 fabc computers 中,jackson抛出一个这样的异常: 我认为问题的发生是因为。它在UTF-8中绝对有意义。知道如何避免这个问题吗?执行在这里有什么帮助吗?

  • 安装了带有pip(不是包管理器)的MkDocs 安装了n个带有pip的MkDocs主题 更新了mkdocs.yaml以添加: 我错过了什么?

  • 我将使用google play services活动识别api编写一个应用程序。android开发者网站上的培训是直接进行的,但在过去的几个小时里,我编写了一个简单的应用程序,但没有得到任何结果。更新:实际上,我将在5秒钟的时间间隔内以toast消息的形式显示用户的当前活动(如ActivityRecognitionService-Intent服务中的OnIntentHandler方法所示)。我认为

  • 我正在尝试在我的Geb框架中设置log4j2。就我的一生而言,我不知道如何把这些结合起来。我有一个log4j2。使用记录器“Selenium”设置xml(不是log4j.xml)文件。在DefaultPage中,我尝试从配置文件。 log4j2.xml DefaultPage.groovy 测试执行并将输出写入STDERR,这是预期的,因为我有记录器。错误但是,它不支持日期的格式。此外,我还使用其