Search code examples
androidxmlgoogle-analyticstrackingr.java-file

XML error when adding Google Analytics into my app


i want to attach google analytics google analytics in my app.

i'm following how to adding google analytics in the google GA homepages. (https://developers.google.com/analytics/devguides/collection/android/v4/#manifest)

but I have an error in ApplicationTracker.java

in R.xml.global_tracker and R.xml.ecommerce_tracker, xml have a red line(have an error)

and error content is "xml cannot be resolved or is not a field"

i'm aleady deal with googling and stackoverfliw searching and so many searching.

and many people say this is about android.R

but i'm not add android. i'm use com.myPackageName.R well.

Can somebody explain this please ?

behind is my code

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>


Solution

  • I had the same error and when i make res/xml folder & rebuild project it's helped to me.