Skip to main content

Troubleshooting

Inspect the logs​

On a connected device:

adb logcat -s TrackingSdkModule ReactNativeJS

Symptoms and error codes​

Symptom / codeWhat to check
Maven 401 / 403 or dependency resolution failureRepository access, Gradle credential properties, repository URL and artifact version
TrackingSdk native module not foundBoth bridge files copied, package registered once, correct namespace / imports, full Android rebuild
Unresolved BuildConfig.TRACKING_*All six fields defined in the app module, buildConfig = true, correct BuildConfig import
USERNAME_REQUIREDSupply a nonblank username
INVALID_DISTANCE_FILTERSupply a finite number >= 0
CALLER_ACCESS_TOKEN_REQUIREDSupply a nonblank token when skipLoginAndRegistration is true
SDK_CONFIGURATION_ERRORCheck the required BuildConfig values for the selected authentication mode
INIT_SDK_ERRORInspect the initialization error, backend configuration, authentication and registration
START_TRACKING_ERRORInspect the SDK error, permissions, device location services and foreground activity
INIT_START_EXCEPTION / "Current activity is null"Call from an active foreground screen; inspect the native exception
STOP_TRACKING_ERROR / STOP_TRACKING_EXCEPTIONInspect the SDK stop error and activity availability
GET_STATE_ERROR / GET_STATE_EXCEPTIONThe native state query failed; the TypeScript wrapper masks it as false
DEVICE_HEALTH_ERRORThe native health query failed; the wrapper returns null
Tracking enabled but no server recordsNetwork access, push endpoint, token validity, username / tenant, backend logs
Background access still deniedGrant background access separately in settings, then retry after returning
Method "is not available in Android native module"See Available API - several wrapper methods are not implemented on Android

Validate on a physical device​

A resolved startup Promise does not prove delivery. Before release, check on a real Android device:

  1. Start from a visible screen, grant permissions, and confirm the tracking state becomes enabled.
  2. Confirm locations arrive in the backend for the expected username and tenant.
  3. Move the device and test background and screen-off behaviour.
  4. Stop tracking and confirm the state becomes disabled.
  5. Test permission denial, approximate location, disabled location services, and returning from settings.
  6. Test relaunch, connectivity loss and recovery, and token expiry against your backend's expected behaviour.
  7. Validate the signed release build and any code-shrinking configuration separately - the example app disables release minification.

See also: Get Started.