Подтвердить что ты не робот

Google Analytics блокирует Android-приложение

Я использую Google Analytics в своем приложении для Android, и он работает хорошо. После обновления SDK (сервиса google play) до текущей версии (6587000) приложение зависает при запуске по следующей строке 8 из 10 раз:

GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);

В консоли нет ошибок. Я добавил Достижения и Лидеры, но Google Analytics вызывается первым. Я также изменил контекст, но это работает иногда, а иногда и нет.

Единственный раз, когда я получаю воспроизводимый результат, я удаляю следующие строки из AndroidManifest.xml. Затем больше нет замораживания при запуске.

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

Но моя конфигурация верна:

<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <string name="ga_appName">TestAppName</string>
  <string name="ga_appVersion">Version1.0</string>
  <string name="ga_logLevel">verbose</string>
  <integer name="ga_dispatchPeriod">1000</integer>
  <bool name="ga_dryRun">true</bool>
</resources>

И если я изменю конфигурацию, будет тот же результат: 8 из 10 раз приложение зависает при запуске.

Кто-нибудь знает, в чем проблема или что еще я могу проверить, чтобы приложение снова запускалось без зависания при запуске?

4b9b3361

Ответ 1

У меня был аналогичный я удалил приведенный ниже код и приложение запускается.

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

и добавьте следующий код для класса getTracker... создайте GoogleAnalytics, используя java-код, а не XML-подход

synchronized Tracker getTracker(TrackerName trackerId) {
        Log.d(TAG, "getTracker()");
        if (!mTrackers.containsKey(trackerId)) {
            GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);

            // Global GA Settings
            // <!-- Google Analytics SDK V4 BUG20141213 Using a GA global xml freezes the app! Do config by coding. -->
            analytics.setDryRun(false);

            analytics.getLogger().setLogLevel(Logger.LogLevel.INFO);
            //analytics.getLogger().setLogLevel(Logger.LogLevel.VERBOSE);

            // Create a new tracker
            Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(R.xml.ga_tracker_config) : null;
            if (t != null) {
                t.enableAdvertisingIdCollection(true);
            }
            mTrackers.put(trackerId, t);
        }
        return mTrackers.get(trackerId);
    }

Ответ 3

У меня была одна и та же проблема ANR каждый раз, когда я вызывал GoogleAnalytics.getInstance(это). Как представляется, проблема возникает, если версия приложения Google Play Services не соответствует той, которая установлена ​​на устройстве.

Я решил это, проверив, доступно ли Google Play Services:

if (GooglePlayServicesUtil.isGooglePlayServicesAvailable(this) == ConnectionResult.SUCCESS) {
    GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
    // Create your tracker...
}