Описание ошибок
- Не увеличивается число сессий
- Нет событий
- Ошибка при добавлении библиотеки в проект
- Ошибка инициализации AppMetrica со сторонними библиотеками
- Некорректная длительность пользовательской сессии при ручном отслеживании
- Высокое энергопотребление библиотекой AppMetrica
- Конфликт при использовании автосбора Ad Revenue для Fyber
- В списке нет моей проблемы
Ниже описаны распространенные ошибки, которые могут возникнуть при работе с AppMetrica SDK на Android.
Не увеличивается число сессий
Проверьте настройки отслеживания сессий. Подробнее в разделе Отслеживание активности пользователей.
Нет событий
-
Совершите в приложении минимум 10 действий, которые инициируют отправку событий. Это необходимо, потому что события накапливаются и отправляются на сервер по несколько штук.
-
Подождите 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()
. Таймаут указывает временной интервал, в течение которого сессия будет считаться активной даже после закрытия приложения.
Конфликт при использовании автосбора Ad Revenue для Fyber
Автосбор Ad Revenue для Fyber не поддерживается и приводит к конфликту в коде на версиях от 6.4.0
до 7.0.0
.
Если вы вызываете метод Interstitial.setInterstitialListener
, то исключите модуль io.appmetrica.analytics:analytics-ad-revenue-fyber-v3
из списка зависимостей для предотвращения конфликта.
В списке нет моей проблемы
Если в списке нет вашей проблемы, обратитесь в службу поддержки. В обращении укажите:
-
Пример интеграции SDK в вашем приложении.
-
ID приложения в веб-интерфейсе AppMetrica.
-
ID устройства.
Как получить Google AID
-
Установите приложение AppMetrica на тестовое устройство.
-
Авторизуйтесь и выберите из списка ваше приложение в AppMetrica.
-
В левом верхнем углу нажмите → Устройство.
-
Google AID указан в поле AID. Укажите его в веб-интерфейсе AppMetrica.
Совет
Тестирование атрибуции можно включить в приложении AppMetrica. Для этого включите Тест атрибуции.
Производителя и модель устройства, платформу и версию ОС, версию AppMetrica SDK.
-
Если вы не нашли ответ на свой вопрос, то вы можете задать его через форму обратной связи. Пожалуйста, опишите возникшую проблему как можно подробнее. Если возможно, приложите скриншот.