2012-07-02 2 views
1

Google a un exemple sur les données analytiques pour les appareils mobiles. Le code est fourni ici. J'ai ajouté le fichier jar et tout compile bien, mais j'ai une erreur lors de l'exécution de l'application. Je pris l'ID UA pour des raisons de sécurité (pas sûr si cela importe ou non)Google Analytique Exemple Android

LogCat me fournit ces informations: E/AndroidRuntime (1175): java.lang.NoClassDefFoundError: com.google.android. apps.analytics.GoogleAnalyticsTracker ET E/AndroidRuntime (1130): à com.google.android.apps.analytics.sample.TestActivity.onCreate (TestActivity.java:19)

D'après ce qu'il dit, il Vous ne trouvez pas le googleAnalyticTracker? Mais s'il compile bien pourquoi ne peut-il pas le trouver?

package com.google.android.apps.analytics.sample; 

import com.google.android.apps.analytics.GoogleAnalyticsTracker; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

public class TestActivity extends Activity { 

    GoogleAnalyticsTracker tracker; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     tracker = GoogleAnalyticsTracker.getInstance(); 

     // Start the tracker in manual dispatch mode... 
     // tracker.startNewSession("", this); 

     // ...alternatively, the tracker can be started with a dispatch interval 
     // (in seconds). 
     tracker.startNewSession("", 20, this); 

     setContentView(R.layout.main); 
     Button createEventButton = (Button) findViewById(R.id.NewEventButton); 
     createEventButton.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       tracker.trackEvent("Clicks", // Category 
         "Button", // Action 
         "clicked", // Label 
         77); // Value 
      } 
     }); 

     Button createPageButton = (Button) findViewById(R.id.NewPageButton); 
     createPageButton.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // Add a Custom Variable to this pageview, with name of "Medium" 
       // and value "MobileApp" 
       tracker.setCustomVar(1, "Medium", "Mobile App"); 
       // Track a page view. This is probably the best way to track 
       // which parts of your application 
       // are being used. 
       // E.g. 
       // tracker.trackPageView("/help"); to track someone looking at 
       // the help screen. 
       // tracker.trackPageView("/level2"); to track someone reaching 
       // level 2 in a game. 
       // tracker.trackPageView("/uploadScreen"); to track someone 
       // using an upload screen. 
       tracker.trackPageView("/testApplicationHomeScreen"); 
      } 
     }); 

     Button quitButton = (Button) findViewById(R.id.QuitButton); 
     quitButton.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       finish(); 
      } 
     }); 

     Button dispatchButton = (Button) findViewById(R.id.DispatchButton); 
     dispatchButton.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // Manually start a dispatch, not needed if the tracker was 
       // started with a dispatch 
       // interval. 
       tracker.dispatch(); 
      } 
     }); 
    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     // Stop the tracker when it is no longer needed. 
     tracker.stopSession(); 
    } 
} 

Répondre

9

J'ai aussi eu le même problème après avoir mis à jour mon SDK android. Je résolus en procédant comme suit:

Clic droit sur votre projet ->Build Path ->Configure Build Path -> Sélectionnez Order and Export Tab -> Vérifier la GoogleAnalyticsJar.jar -> Appuyez sur OK.

Cela m'a aidé à résoudre le problème. J'espère que cela vous aidera aussi.

+0

rapide et solution facile grâce à vous, ne peut pas vous remercier assez –

+0

toujours heureux de vous aider :). –

0

Créez alalytics.xml dans votre dossier de disposition et collez le code suivant.

<?xml version="1.0" encoding="utf-8" ?> 
    <resources> 

     <!--Replace placeholder ID with your tracking ID--> 

     <string name="ga_trackingId">UA-XXXX-Y</string> 

     <!--Enable automatic activity tracking--> 

     <bool name="ga_autoActivityTracking">true</bool> 

     <!--Enable automatic exception tracking--> 

     <bool name="ga_reportUncaughtExceptions">true</bool> 

    </resources> 

Create Helper.java class and paste the following code. 

import android.content.Context; 
import com.google.analytics.tracking.android.EasyTracker; 
import com.google.analytics.tracking.android.Fields; 
import com.google.analytics.tracking.android.MapBuilder; 
import com.google.analytics.tracking.android.Tracker; 
import com.google.tagmanager.DataLayer; 
import com.google.tagmanager.TagManager; 
public class Helper{ 

         /** 
         * Push an "openScreen" event with the given screen name. Tags that match that event will fire. 
         */ 
        private static Tracker tracker; 
         public static void pushOpenScreenEvent(Context context, String screenName) { 

          // Instantiate the Tracker 
              tracker = EasyTracker.getInstance(context); 
              tracker.set(Fields.SCREEN_NAME, screenName); 
             // Send a screenview. 
              tracker.send(MapBuilder 
              .createAppView() 
              .build() 
              ); 
         } 

         /** 
         * Push an "Button clicked" event with the given screen name. Tags that match that event will fire. 
         */ 
         public static void pushbtnClickedEvent(Context context, String clickE) { 
              tracker = EasyTracker.getInstance(context); 
             // Values set directly on a tracker apply to all subsequent hits. 
              tracker.set(Fields.SCREEN_NAME, "Home Screen"); 

              // This screenview hit will include the screen name "Home Screen". 
              tracker.send(MapBuilder.createAppView().build()); 

              // And so will this event hit. 
              tracker.send(MapBuilder 
              .createEvent("UI", "click", "my btn clicked", null) 
              .build() 
              ); 
         } 
         /** 
         * Push a "closeScreen" event with the given screen name. Tags that match that event will fire. 
         */ 
         public static void pushCloseScreenEvent(Context context, String screenName) { 

          // Instantiate the Tracker 
              tracker = EasyTracker.getInstance(context); 
              tracker.set(Fields.SCREEN_NAME, screenName); 
             // Send a screenview. 
              tracker.send(MapBuilder 
              .createAppView() 
              .build() 
              ); 
         } 
} 

MainActivity.java

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

import com.google.analytics.tracking.android.EasyTracker; 

public class MainActivity extends Activity { 


Button btnClickEvent; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     btnClickEvent=(Button)findViewById(R.id.button1); 
     btnClickEvent.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
    // TODO Auto-generated method stub 

    Helper.pushbtnClickedEvent(MainActivity.this, "Button Clicked"); 

    } 
    }); 
    } 


    @Override 
    protected void onStart() { 
     super.onStart(); 
     EasyTracker.getInstance(this).activityStart(this); 
     Helper.pushOpenScreenEvent(this, "Main Activity"); 

    } 
@Override 
protected void onStop() { 
         // TODO Auto-generated method stub 

         super.onStop(); 
         EasyTracker.getInstance(this).activityStop(this); // Add this method 




} 
} 

Maintenant, votre application est prêt, appuyez simplement sur le bouton "" puis, ouvrez votre tableau de bord Google Analytics.

Ne pas oublier d'ajouter ces autorisations dans manifest.xml

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

Référé de: http://velmuruganandroidcoding.blogspot.in/2014/08/google-analytics-in-android.html

Questions connexes