GoogleAnalytics.getInstance (this) no responde

Tengo un applcation android y le agregué Google Analytics Tracker y funciona (puedo ver las vistas en el panel de Analytics).

El problema es que alguna vez la aplicación comienza a cargar y luego se queda atascado y no responde más. Traté de depurar y descubrí que cuando se trata de la línea

GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); 

En algún momento no hay respuesta.

¿Por qué sucede esto y cómo puedo solucionarlo?

EDITAR:

He añadido analytics_global_config opcional y sigue ocurriendo

 <meta-data android:name="com.google.android.gms.analytics.globalConfigResource" android:resource="@xml/analytics_global_config" /> 

Analytics_global_config.xml

 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="ga_appName">HebConvertor</string> <string name="ga_appVersion">1.0</string> <string name="ga_logLevel">verbose</string> <integer name="ga_dispatchPeriod">1000</integer> <bool name="ga_dryRun">false</bool> </resources> 

Mi aplicación:

 import com.google.android.gms.analytics.GoogleAnalytics; import com.google.android.gms.analytics.Tracker; import android.app.Application; public class MyApplication extends Application { // The following line should be changed to include the correct property id. private static final String PROPERTY_ID = "XX-XXXXXXXX-X"; 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>(); public MyApplication() { super(); } synchronized Tracker getTracker(TrackerName trackerId) { if (!mTrackers.containsKey(trackerId)) { GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(R.xml.app_tracker) : (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(PROPERTY_ID) : analytics.newTracker(R.xml.app_tracker); mTrackers.put(trackerId, t); } return mTrackers.get(trackerId); } } 

App_tracker.xml:

 <?xml version="1.0" encoding="utf-8"?> <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="TypographyDashes"> <!-- tools:ignore="TypographyDashes" --> <!-- The apps Analytics Tracking Id --> <string name="ga_trackingId">XX-XXXXXXXX-X</string> <!-- Percentage of events to include in reports --> <string name="ga_sampleFrequency">100.0</string> <!-- Enable automatic Activity measurement --> <bool name="ga_autoActivityTracking">true</bool> <!-- catch and report uncaught exceptions from the app --> <bool name="ga_reportUncaughtExceptions">true</bool> <!-- How long a session exists before giving up --> <integer name="ga_sessionTimeout">-1</integer> <!-- If ga_autoActivityTracking is enabled, an alternate screen name can be specified to substitute for the full length canonical Activity name in screen view hit. In order to specify an alternate screen name use an <screenName> element, with the name attribute specifying the canonical name, and the value the alias to use instead. --> <screenName name="com.example.myapplication.MainActivity">MainActivity</screenName> </resources> 

Actividad principal:

  public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()).commit(); } getOverflowMenu(); } @Override public void onStart() { super.onStart(); //Get an Analytics tracker to report app starts & uncaught exceptions etc. GoogleAnalytics.getInstance(this).reportActivityStart(this); } @Override public void onStop() { super.onStop(); //Stop the analytics tracking GoogleAnalytics.getInstance(this).reportActivityStop(this); } public static class PlaceholderFragment extends Fragment { public PlaceholderFragment() { } protected InterstitialAd interstitial; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); // Get tracker. Tracker t = ((MyApplication)getActivity().getApplication()).getTracker(TrackerName.APP_TRACKER); // Set screen name. t.setScreenName("MainActivity"); ... } } } 

Este es un problema conocido con Google Play Services 6.5. Vea Android GoogleAnalytics getInstance para más detalles.

El problema se soluciona en Google Play Services 7.0 que se publicó el 2015, 19 de marzo. http://developer.android.com/google/play-services/index.html

Si debe utilizar Play Services 6.5, la solución es configurar Google Analytics desde el código en lugar de xml o pasar a Google Play Services 6.1.

El código siguiente cuando se agrega a su clase de aplicación es equivalente a su configuración de manifiesto:

 public class MyApplication extends Application { //... private Tracker mTracker; public synchronized Tracker getAppTracker() { if (mTracker == null) { GoogleAnalytics analytics = GoogleAnalytics.getInstance(this) mTracker = analytics.newTracker("XX-XXXXXXXX-X"); // Replace with your real tracker id mTracker.enableAutoActivityTracking(true); mTracker.enableExceptionReporting(true); mTracker.setSessionTimeout(-1); // mTracker.setSampleRate(100.0d); // Not needed. The default sampling rate it 100% } return mTracker; } } 
  • ¿Análisis roto en la melcocha?
  • Problemas con Google Analytics después de que los servicios de reproducción aumenten a 7.5
  • Experimentos de contenido de Android con el Administrador de etiquetas no muestra sesiones después de varios días
  • Utilizar múltiples cuentas de firebase en una sola aplicación de Android para google analytics
  • Android: ANR en Google Analytics
  • ¿Debo usar reportActivityStop o reportActivityStart cuando onPause () o onResume ()
  • El método setLocalDispatchPeriod (int) del tipo GAServiceManager está obsoleto
  • Datos demográficos de Google Analytics para Android
  • Google Analytics V2 no registra las estadísticas de la aplicación de Android
  • ¿Hay algún código necesario en Actividad para que ga_autoActivityTracking = true funcione para Google Analytics V4
  • Referencia de intenciones de Google Play para Google
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.