Preventing Possible WorkManager Issues

We use WorkManager in Reteno SDK. If you are using WorkManager in your project, you can face WorkManager initialization issues.

If you do, remove the default WorkManager initializer — but only it. Removing the whole androidx.startup.InitializationProvider breaks the SDK's initialization: Reteno.initWithConfig(...) then fails with IllegalArgumentException: Trying to access Reteno instance before Application.onCreate(), even though it is called after super.onCreate(). Merge the provider and remove the WorkManager initializer inside it:

<provider
    android:name="androidx.startup.InitializationProvider"
    android:authorities="${applicationId}.androidx-startup"
    android:exported="false"
    tools:node="merge">

    <meta-data
        android:name="androidx.work.WorkManagerInitializer"
        android:value="androidx.startup"
        tools:node="remove" />
</provider>

And implement a configuration provider in your Application class:

class MyApplication() : Application(), Configuration.Provider {
     override fun getWorkManagerConfiguration() =
           Configuration.Builder()
                .setMinimumLoggingLevel(android.util.Log.INFO)
                .build()
}
class MyApplication extends Application implements Configuration.Provider {
    @Override
    public Configuration getWorkManagerConfiguration() {
        return new Configuration.Builder()
                .setMinimumLoggingLevel(android.util.Log.INFO)
                .build();
    }
}

You can find more information in official WorkManager custom initialization documentation .