Описание ошибок

Ниже описаны распространенные ошибки, которые могут возникнуть при работе с AppMetrica SDK на Android.

Не увеличивается число сессий

Проверьте настройки отслеживания сессий. Подробнее в разделе Отслеживание активности пользователей.

Нет событий

  1. Совершите в приложении минимум 10 действий, которые инициируют отправку событий. Это необходимо, потому что события накапливаются и отправляются на сервер по несколько штук.

  2. Подождите 10 минут и проверьте отчет. События отображаются в отчете не сразу.

Ошибка при добавлении библиотеки в проект

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:502)
at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:491)
at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:277)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:168)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)

Данная ошибка сообщает, что превышен лимит методов на этапе обработки DexIndexOverflowException. Рекомендуем пересмотреть используемые библиотеки — возможно, они очень тяжеловесны. Если их нельзя заменить легковесными аналогами, то можно использовать несколько DEX-файлов. Это может увеличить время загрузки приложения.

Ошибка инициализации AppMetrica со сторонними библиотеками

Код, который добавлен в метод Application.onCreate(), выполняется для всех процессов. Если после интеграции сторонней библиотеки (например, Firebase Cloud Messaging) возникает ошибка инициализации, убедитесь, что сторонняя библиотека инициализируется только в главном процессе.

Примеры ошибок:

Unable to create application your.package.name.YourApp: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process your.package.name:Metrica. Make sure to call FirebaseApp.initializeApp(Context) first.
android.database.sqlite.SQLiteException: table httpauth already exists (code 1)
Fatal Exception: java.lang.RuntimeException: Using WebView from more than one process at once with the same data directory is not supported.
ANR at com.google.android.gms.ads.*

Чтобы исправить ошибку, реализуйте проверку главного процесса перед инициализацией сторонних библиотек:

class YourApplication : Application() {
    override fun onCreate() {
        super.onCreate()

        if (isMainProcess()) {
            // Initializing third-party libraries after verification.
        }
    }
}
class YourApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate()

        if (isMainProcess()) {
            // Initializing third-party libraries after verification.
        }
    }
}

Примечание

Проверку главного процесса реализуйте самостоятельно. Например, как это сделано в ответе на Stack Overflow.

Некорректная длительность пользовательской сессии при ручном отслеживании

При неправильной реализации ручного отслеживания сессии возможно неточное определение ее длительности.

Если данные о длительности сессий выглядят некорректно, убедитесь, что при завершении пользовательской сессии всегда вызывается метод AppMetrica.pauseSession(). Если метод не вызван, библиотека считает сессию активной и совершает регулярный обмен данными с серверной частью AppMetrica.

Рекомендуется проверить длительности таймаута сессии. Он устанавливается с помощью метода withSessionTimeout(). Таймаут указывает временной интервал, в течение которого сессия будет считаться активной даже после закрытия приложения.

Высокое энергопотребление библиотекой AppMetrica

При повышенном энергопотреблении библиотекой, убедитесь, что при завершении пользовательской сессии всегда вызывается метод AppMetrica.pauseSession(). Если метод не вызван, библиотека считает сессию активной и совершает регулярный обмен данными с серверной частью AppMetrica.

Рекомендуется проверить длительности таймаута сессии. Он устанавливается с помощью метода withSessionTimeout(). Таймаут указывает временной интервал, в течение которого сессия будет считаться активной даже после закрытия приложения.

В списке нет моей проблемы

Если в списке нет вашей проблемы, обратитесь в службу поддержки. В обращении укажите:

  1. Пример интеграции SDK в вашем приложении.

  2. ID приложения в веб-интерфейсе AppMetrica.

  3. ID устройства.

    1. Установите приложение AppMetrica на тестовое устройство.

    2. Авторизуйтесь и выберите из списка ваше приложение в AppMetrica.

    3. В левом верхнем углу нажмите humУстройство.

    4. Google AID указан в поле AID. Укажите его в веб-интерфейсе AppMetrica.

      Совет

      Тестирование атрибуции можно включить в приложении AppMetrica. Для этого включите Тест атрибуции.

  4. Производителя и модель устройства, платформу и версию ОС, версию AppMetrica SDK.

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

Написать в службу поддержки