【问题标题】:"error: cannot find symbol variable xml" while trying google analytics“错误:在尝试谷歌分析时找不到符号变量 xml”
【发布时间】:2015-08-18 17:31:52
【问题描述】:

我正在尝试为我的一个 Android 应用程序实施谷歌分析。我对分析和安卓应用程序开发完全陌生。我想尝试谷歌开发者网站中给出的例子。在尝试编译他们的代码时,我收到指向分析应用程序 java 文件的错误,mTracker = analytics.newTracker(R.xml.global_tracker); 行,.xml 突出显示。我在这里发布了整个代码。

这是 AnalyticsApplication.java

package com.google.samples.quickstart.analytics;

import android.app.Application;

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

public class AnalyticsApplication extends Application {
  private Tracker mTracker;

  synchronized public Tracker getDefaultTracker() {
    if (mTracker == null) {
      GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
      // To enable debug logging use: adb shell setprop log.tag.GAv4 DEBUG
      mTracker = analytics.newTracker(R.xml.global_tracker);
    }
    return mTracker;
  }
}

我的 Global_tracker.xml 文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!--Replace placeholder ID with your tracking ID-->
    <string name="ga_trackingId">UA-XXXXXXXX-X</string>

    <!--Enable automatic activity tracking-->
    <bool name="ga_autoActivityTracking">true</bool>

    <!--Enable automatic exception tracking-->
    <bool name="ga_reportUncaughtExceptions">true</bool>
</resources>

我的清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.google.samples.quickstart.analytics">

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application
        android:name=".AnalyticsApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest>

我已经在这个问题上花了整整两天的时间,我需要你的建议才能继续前进。

谢谢。

【问题讨论】:

    标签: java android xml google-analytics


    【解决方案1】:

    您需要在 res 文件夹中创建一个名为 xml 的新文件夹,并将文件移动到该文件夹​​。还要确保正确调用布局名称,因为在您的问题中,您写的是 Global_tracker.xml 而不是 global_tracker.xml。这太重要了。

    希望对您有所帮助。

    【讨论】:

    • 非常感谢。这救了我。
    • 你说的是什么布局? global_tracking.xml 是一个 xml 资源文件,应该由 GoogleAnalytics gradle 插件生成。
    • @Luten 这只是提问者在其他地方创建的值资源文件,而不是标题明确指出的 xml 文件夹,提问者不知道他应该创建一个名为 xml 的新文件夹解决这个问题。所以他绝对应该创造它。
    • 1.您的回答是关于布局文件的,因为没有布局文件,这很令人困惑。布局文件也不应该放在 xml 文件夹中。 2. 这不是你应该使用谷歌分析的正确方式。 global_tracker.xml 文件是自动生成的,不应手动创建。提问者的问题是由损坏的自动生成引起的。可以在此处找到有关此问题的讨论和解决方法:github.com/googlesamples/google-services/issues/26
    • @Luten 你说得对,我写的布局文件。这是我的一个错误,我昨天修复了它。无论如何,这个解决方案解决了提问者的问题。此外,global_tracker.xml 不是布局文件;它是一个值资源文件。此外,它不应该是自动生成的,因为询问者需要在资源文件中输入他的跟踪 ID。
    【解决方案2】:

    检查你是否忘记放

    应用插件:'com.google.gms.google-services'

    在应用级 build.gradle 中

    【讨论】:

    • 文件末尾
    • 对我来说,在应用应用程序插件后,它甚至在模块级 build.gradle 中也可以工作。
    【解决方案3】:

    蛮力解决方案是简单地提供实际的分析代码。

    GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
    Tracker tracker = analytics.newTracker("UA-XXXXXXXXX-X");
    

    而不是遵循android常规程序

    GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
    Tracker tracker = analytics.newTracker(R.xml.global_tracker);
    

    这是解决问题的一种非常野蛮的方法,但它确实有效,因为newTracker() 方法只需要 Google Analytics 跟踪代码的实际 string 值。

    official reference document 甚至有相同的范式示例。

    【讨论】:

      【解决方案4】:

      我在从

      执行降级到较低版本时遇到了类似的问题
      com.google.gms:google-services:3.0.0
      

      com.google.gms:google-services:1.3.1
      

      (不要问为什么(这是为了匆忙修复 CI 构建脚本的假设))

      所以,请确保您没有进行降级更改

      【讨论】:

        【解决方案5】:

        我在播放服务库 10.2.1 版的 gcm 和 google 分析中也遇到了同样的问题,只需添加 global_tracker.xml 即可解决问题,如 @Hussein El Feky 中所述 回答,但只有那个修复没有解决我的问题,我还在 strings.xml 中添加了两行:

        <string name="global_tracker">UA-XXXXXXXX-XX</string>
        <string name="gcm_defaultSenderId">PROJECT-NO</string>
        

        【讨论】:

          【解决方案6】:

          我也遇到了类似的问题。

          使用类路径com.android.tools.build:gradle:1.2.3。这解决了我的问题。

          【讨论】:

            猜你喜欢
            • 2018-01-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-12-12
            • 2016-08-08
            • 2020-06-30
            • 2023-03-12
            相关资源
            最近更新 更多