XML 将 Google 分析添加到我的应用程序时出错
XML error when adding Google Analytics into my app
我想在我的应用程序中附加 google 分析 google 分析。
我正在关注如何在 google GA 主页中添加 google 分析。
(https://developers.google.com/analytics/devguides/collection/android/v4/#manifest)
但是我在 ApplicationTracker.java
中有一个错误
在R.xml.global_tracker和R.xml.ecommerce_tracker中,xml有红线(有错误)
错误内容为"xml cannot be resolved or is not a field"
我已经在处理谷歌搜索和 stackoverfliw 搜索以及很多搜索了。
很多人说这是关于 android.R
但我没有添加 android。我用 com.myPackageName.R 很好。
有人可以解释一下吗?
后面是我的代码
ApplicationTracker.java
package com.zla.android;
import java.util.HashMap;
import android.app.Application;
import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.Tracker;
import com.zla.android.R;
public class ApplicationTrackers extends Application{
private static final String PROPERTY_ID = "UA-XXXXXXXX-2";
public enum TrackerName {
APP_TRACKER, // Tracker used only in this app.
GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company.
}
HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();
synchronized Tracker getTracker(TrackerName trackerId) {
if (!mTrackers.containsKey(trackerId)) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID)
: (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker)
: analytics.newTracker(R.xml.ecommerce_tracker);
mTrackers.put(trackerId, t);
}
return mTrackers.get(trackerId);
}
}
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>
<!-- Enable automatic Activity measurement -->
<bool name="ga_autoActivityTracking">true</bool>
<!-- The screen names that will appear in reports -->
<string name="com.zla.android.MainActivity">MainActivity</string>
<string name="ga_trackingId">UA-XXXXXXXX-2</string>
</resources>
ecommerce_tracker.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="ga_sessionTimeout">300</integer>
<string name="ga_trackingId">UA-XXXXXXXX-2</string>
</resources>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.zla.android"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="21" />
<!-- about google analytics -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@drawable/app_icon"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:largeHeap="true" >
<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>
<activity
android:name="com.zla.android.SearchBrandActivity"
android:label="search page" />
<activity
android:name="com.zla.android.SearchFrameActivity"
android:label="search page" />
<activity
android:name="com.zla.android.ListActivity"
android:label="list page"
android:parentActivityName="com.zla.android.MainActivity" >
</activity>
<activity
android:name="com.zla.android.ListActivity_WishList"
android:label="list page"
android:parentActivityName="com.zla.android.MainActivity" >
</activity>
<activity
android:name="com.zla.android.DetailActivity"
android:label="detail page"
android:parentActivityName="com.zla.android.ListActivity" />
<!-- about google analytics -->
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity
android:name="com.zla.android.ApplicationTrackers"
android:label="google analytics"
android:parentActivityName="com.zla.android.MainActivity" />
</application>
</manifest>
我遇到了同样的错误,当我创建 res/xml 文件夹并重建项目时,它对我有所帮助。
我有同样的错误。
google-services.json 文件中的客户端包名称和应用程序中的包名称必须相同。
它帮助了我。
我遇到了同样的错误,这个解决方案(添加 global_tracker.xml)文件在新的 res/xml 目录中有效。清洁和重建。请注意,在解决方案中,发帖人已将 global_tracker.xml 文件名中的 G 大写。这应该是小写的。 Link 解决方案是
不要忘记添加这个
将依赖项添加到您的项目级别 build.gradle:
classpath 'com.google.gms:google-services:1.5.0-beta2'
将插件添加到您的应用级别 build.gradle:
apply plugin: 'com.google.gms.google-services'
我忘记在我的代码中添加这个,当我同步时,它没有错误。
如果您没有将配置文件 'google-services.json' 包含在 'app' 文件夹中,或者已经存在的配置文件不包含 Google 解析的支持代码,R.xml.global_tracker 会导致错误。
注意:如果您已经包含 GCM 或其他服务的 'google-services.json',请不要忽略它。因为您必须通过包含分析来重建 'google-services.json'。否则错误无法解决
要创建配置文件,请单击下面的解析开发者文档中的"Get a configuration file"按钮link。
此外,使用以下依赖项
内部项目 Gradle
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0-beta2'
classpath 'com.google.gms:google-services:2.0.0-beta2'
}
应用程序内部 Gradle
dependencies {
compile 'com.google.android.gms:play-services-analytics:8.4.0'
}
apply plugin: 'com.google.gms.google-services'
我遇到了同样的问题,但我对 google-services.json
或 package name
没有任何问题。但是,在项目级别更新此 build.gradle
为我修复了它。
- 类路径
'com.google.gms:google-services:1.5.0-beta2'
- 类路径
'com.google.gms:google-services:2.1.0'
根据文档,必须创建文件
创建global_tracker.xml
创建文件 app/src/res/xml/global_tracker.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="ga_trackingId" translatable="false">${YOUR_TRACKING_ID}</string>
</resources>
Replace ${YOUR_TRACKING_ID} with your tracking ID.
蛮力解决方案是简单地提供实际的分析代码。
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甚至有相同的范例。
我想在我的应用程序中附加 google 分析 google 分析。
我正在关注如何在 google GA 主页中添加 google 分析。 (https://developers.google.com/analytics/devguides/collection/android/v4/#manifest)
但是我在 ApplicationTracker.java
中有一个错误在R.xml.global_tracker和R.xml.ecommerce_tracker中,xml有红线(有错误)
错误内容为"xml cannot be resolved or is not a field"
我已经在处理谷歌搜索和 stackoverfliw 搜索以及很多搜索了。
很多人说这是关于 android.R
但我没有添加 android。我用 com.myPackageName.R 很好。
有人可以解释一下吗?
后面是我的代码
ApplicationTracker.java
package com.zla.android;
import java.util.HashMap;
import android.app.Application;
import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.Tracker;
import com.zla.android.R;
public class ApplicationTrackers extends Application{
private static final String PROPERTY_ID = "UA-XXXXXXXX-2";
public enum TrackerName {
APP_TRACKER, // Tracker used only in this app.
GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company.
}
HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();
synchronized Tracker getTracker(TrackerName trackerId) {
if (!mTrackers.containsKey(trackerId)) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID)
: (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker)
: analytics.newTracker(R.xml.ecommerce_tracker);
mTrackers.put(trackerId, t);
}
return mTrackers.get(trackerId);
}
}
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>
<!-- Enable automatic Activity measurement -->
<bool name="ga_autoActivityTracking">true</bool>
<!-- The screen names that will appear in reports -->
<string name="com.zla.android.MainActivity">MainActivity</string>
<string name="ga_trackingId">UA-XXXXXXXX-2</string>
</resources>
ecommerce_tracker.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="ga_sessionTimeout">300</integer>
<string name="ga_trackingId">UA-XXXXXXXX-2</string>
</resources>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.zla.android"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="21" />
<!-- about google analytics -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@drawable/app_icon"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:largeHeap="true" >
<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>
<activity
android:name="com.zla.android.SearchBrandActivity"
android:label="search page" />
<activity
android:name="com.zla.android.SearchFrameActivity"
android:label="search page" />
<activity
android:name="com.zla.android.ListActivity"
android:label="list page"
android:parentActivityName="com.zla.android.MainActivity" >
</activity>
<activity
android:name="com.zla.android.ListActivity_WishList"
android:label="list page"
android:parentActivityName="com.zla.android.MainActivity" >
</activity>
<activity
android:name="com.zla.android.DetailActivity"
android:label="detail page"
android:parentActivityName="com.zla.android.ListActivity" />
<!-- about google analytics -->
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity
android:name="com.zla.android.ApplicationTrackers"
android:label="google analytics"
android:parentActivityName="com.zla.android.MainActivity" />
</application>
</manifest>
我遇到了同样的错误,当我创建 res/xml 文件夹并重建项目时,它对我有所帮助。
我有同样的错误。 google-services.json 文件中的客户端包名称和应用程序中的包名称必须相同。 它帮助了我。
我遇到了同样的错误,这个解决方案(添加 global_tracker.xml)文件在新的 res/xml 目录中有效。清洁和重建。请注意,在解决方案中,发帖人已将 global_tracker.xml 文件名中的 G 大写。这应该是小写的。 Link 解决方案是
不要忘记添加这个
将依赖项添加到您的项目级别 build.gradle:
classpath 'com.google.gms:google-services:1.5.0-beta2'
将插件添加到您的应用级别 build.gradle:
apply plugin: 'com.google.gms.google-services'
我忘记在我的代码中添加这个,当我同步时,它没有错误。
如果您没有将配置文件 'google-services.json' 包含在 'app' 文件夹中,或者已经存在的配置文件不包含 Google 解析的支持代码,R.xml.global_tracker 会导致错误。
注意:如果您已经包含 GCM 或其他服务的 'google-services.json',请不要忽略它。因为您必须通过包含分析来重建 'google-services.json'。否则错误无法解决
要创建配置文件,请单击下面的解析开发者文档中的"Get a configuration file"按钮link。
此外,使用以下依赖项 内部项目 Gradle
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0-beta2'
classpath 'com.google.gms:google-services:2.0.0-beta2'
}
应用程序内部 Gradle
dependencies {
compile 'com.google.android.gms:play-services-analytics:8.4.0'
}
apply plugin: 'com.google.gms.google-services'
我遇到了同样的问题,但我对 google-services.json
或 package name
没有任何问题。但是,在项目级别更新此 build.gradle
为我修复了它。
- 类路径
'com.google.gms:google-services:1.5.0-beta2'
- 类路径
'com.google.gms:google-services:2.1.0'
根据文档,必须创建文件
创建global_tracker.xml
创建文件 app/src/res/xml/global_tracker.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="ga_trackingId" translatable="false">${YOUR_TRACKING_ID}</string>
</resources>
Replace ${YOUR_TRACKING_ID} with your tracking ID.
蛮力解决方案是简单地提供实际的分析代码。
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甚至有相同的范例。