Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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>
like image 734
Sangho Ju Avatar asked Apr 04 '15 16:04

Sangho Ju


2 Answers

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

like image 94
Stanislav Bondar Avatar answered Sep 23 '22 14:09

Stanislav Bondar


I had the same error. Your Client Package name in google-services.json file and package name in your app must be same. It helped me.

like image 35
Sanyam Jain Avatar answered Sep 23 '22 14:09

Sanyam Jain