Error descriptions
- The number of sessions does not increase
- No events in the report
- Error adding a library to a project
- Error initializing AppMetrica with third-party libraries
- Invalid duration of user session at manual tracking
- High power consumption by the AppMetrica library
- Code conflict when using automatic collection of Ad Revenue data for Fyber
- My problem is not listed
The following sections describe common errors that you might encounter while working with the AppMetrica SDK on Android.
The number of sessions does not increase
Check your session tracking settings. For more information, see Tracking user activity.
No events in the report
-
Perform a minimum of 10 app actions that trigger the event sending. It's necessary because AppMetrica accumulates events in the buffer and sends to the server in several parts.
-
Wait for 10 minutes and check the report. Reports don't display events immediately.
Error adding a library to a project
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)
This error indicates that the method limit was exceeded at the DexIndexOverflowException stage of processing. We recommend reviewing the libraries used — perhaps they are very heavy. If they can't be replaced with lightweight alternatives, you can use multiple DEX files. This might increase the app loading time.
Error initializing AppMetrica with third-party libraries
The code in the Application.onCreate()
method runs for all processes. If you encounter an initialization error after integrating a third-party library (such as Firebase Cloud Messaging), make sure that the third-party library is initialized only in the main process.
Error examples:
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.*
To fix the error, implement the main process check before initializing third-party libraries:
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.
}
}
}
Note
Implement verification of the main process on your own. See an example in the Stack Overflow answer.
Invalid duration of user session at manual tracking
If the manual tracking of the user session is incorrectly implemented, it may lead to an inaccurate determination of its duration.
If the user session duration data look invalid, make sure the AppMetrica.pauseSession()
method is always called when the user session ends. If this method is not called, the library considers that the session is active and commits regular data exchange with the server part of AppMetrica.
We recommend checking the duration of the session timeout. It is set by the withSessionTimeout()
method. The timeout sets the time interval during which the session will be considered active even after the application is closed.
High power consumption by the AppMetrica library
If the library is consuming too much power, make sure you always call the AppMetrica.pauseSession()
method when the user session ends. If this method is not called, the library considers that the session is active and commits regular data exchange with the server part of AppMetrica.
We recommend checking the duration of the session timeout. It is set by the withSessionTimeout()
method. The timeout sets the time interval during which the session will be considered active even after the application is closed.
Code conflict when using automatic collection of Ad Revenue data for Fyber
Automatic collection of Ad Revenue data for Fyber is not supported and causes a conflict in the code for versions 6.4.0
to 7.0.0
.
If you call the Interstitial.setInterstitialListener
method in your app, exclude the io.appmetrica.analytics:analytics-ad-revenue-fyber-v3
module from the list of dependencies to avoid the conflict.
My problem is not listed
If your problem is not listed, contact support service. Specify the following:
-
The source code snippet that shows the SDK integration to your app.
-
Application ID in the AppMetrica web interface.
-
Device ID.
-
Install the AppMetrica app on the test device.
-
Log in and select your app from the list.
-
In the upper-left corner, click → Device.
-
The Google AID is shown in the AID field. Enter it in the AppMetrica web interface.
Tip
You can enable attribution testing in the AppMetrica app. Enable Attribution testing for that.
-
-
Device model and manufacturer, platform and OS version, AppMetrica SDK version.
If you didn't find the answer you were looking for, you can use the feedback form to submit your question. Please describe the problem in as much detail as possible. Attach a screenshot if possible.