This page lists known issues with the Incode Onboarding Cordova Plugin, their status, and workarounds.
Virtual environment crash on Android
Status: By design (security feature).
Platform: Android.
When running in a virtual or emulated environment, the app may crash with a NullPointerException originating in ThemeConfiguration$Builder and related repository classes. This crash is triggered by the SDK's hook and virtual-environment detection, which intentionally cause a native crash that application code cannot catch or handle.
As of 4.2.0, emulator and root detection no longer abort the flow; the onboarding continues normally. Hook and virtual-environment detection still trigger an unrecoverable native crash.
Example stack traces:
java.lang.NullPointerException
at com.incode.welcome_sdk.ThemeConfiguration$Builder.setLabelSmallStyle(SourceFile:1066)
at com.incode.welcome_sdk.f.c(SourceFile:150)
at com.incode.welcome_sdk.data.local.m.as(SourceFile:22)
at com.incode.welcome_sdk.IncodeWelcome.startOnboardingSection(SourceFile:18)
java.lang.NullPointerException: Attempt to get length of null array
at com.incode.welcome_sdk.data.IncodeWelcomeRepository.d(SourceFile:320)
at com.incode.welcome_sdk.data.IncodeWelcomeRepository.i(SourceFile:214)
Workaround: Do not run production builds in virtual environments. For development and testing on emulators, see Emulator and simulator false security triggers below.
Emulator and simulator false security triggers
Status: Workaround available.
Platform: All.
Running on simulators or emulators can trigger security checks that return errors such as simulatorDetected.
Workaround: Set testMode to "true" when calling initializeSDK() on simulators and emulators. Use testMode: "false" on real devices in production, otherwise you may receive a testModeEnabled error.
iOS double initialization
Status: By design.
Platform: iOS.
The iOS SDK guards against double initialization. Calling initializeSDK() more than once per app lifecycle is a no-op on iOS.
Workaround: Initialize once per app lifecycle. Use isInitialized() to check state before attempting to reinitialize.
setCommonConfig deprecated
Status: Deprecated since 4.6.0; scheduled for removal.
Platform: All.
setCommonConfig() is deprecated. It now forwards internally to showCloseButton() and logs a deprecation warning. It will be removed in a future major release.
Workaround: Use showCloseButton(successCallback, errorCallback, allowUserToCancel) instead.