web-dev-qa-db-fra.com

"erreur: impossible de trouver la variable de symbole xml" lors de la tentative d'analyse de Google

J'essaie d'implémenter Google Analytics pour l'une de mes applications Android. Je suis totalement nouveau pour l'analyse et le développement d'applications Android. J'ai pensé à essayer les exemples donnés sur le site des développeurs de Google. Lorsque j'essaie de compiler leur code, le message d'erreur indiquant le fichier Java de l'application d'analyse, ligne mTracker = analytics.newTracker(R.xml.global_tracker);, .xml est mis en évidence. J'ai posté le code entier ici.

C'est 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;
  }
}

Mon fichier 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>

Mon fichier manifeste

<?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>

J'ai déjà passé deux jours complets dans ce numéro et j'ai besoin de votre suggestion pour avancer.

Merci.

15
faz

Vous devez créer un nouveau dossier dans votre dossier res appelé xml et déplacer votre fichier dans ce dossier. Assurez-vous également d'appeler correctement le nom de la présentation, car dans votre question, vous avez écrit Global_tracker.xml au lieu de global_tracker.xml. C'est tellement important.

J'espère que cela pourra aider.

16
Hussein El Feky

Vérifie si tu n'oublies pas de mettre

appliquer le plugin: 'com.google.gms.google-services'

au niveau de l'application build.gradle

La solution force brute consiste simplement à fournir le code d'analyse actuel.

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

plutôt que de suivre la procédure conventionnelle Android

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

C'est une façon assez sauvage de résoudre le problème, mais cela fonctionne sûrement car la méthode newTracker () n'a besoin que de la valeur string du code de suivi de Google Analytics.

Le document de référence officiel a même le même exemple de paradigme.

0
Abel Callejo

J'ai également rencontré le même problème avec la bibliothèque de services de jeu version 10.2.1 pour gcm et Google Analytics. Ce problème est simplement résolu en ajoutant global_tracker.xml comme indiqué dans le @Hussein El Feky Answer, mais uniquement ce correctif. n'est pas résolu mon problème aussi j'ai ajouté deux lignes de plus dans strings.xml :

<string name="global_tracker">UA-XXXXXXXX-XX</string>
<string name="gcm_defaultSenderId">PROJECT-NO</string>
0
Devidas M Das

J'ai eu le même problème quand préformait-il une rétrogradation à la version inférieure de

com.google.gms:google-services:3.0.0

à

com.google.gms:google-services:1.3.1

(Ne demandez pas pourquoi (c'était une hypothèse afin de corriger le script de compilation de CI rapidement))

Donc, assurez-vous que vous n'avez pas apporté de modifications à la rétrogradation

0
evasyuk