Licensing on Android
01 Sept 2026 · Field Track 360
Release builds require a license token. Debuggable builds are waived automatically, so you can evaluate the whole SDK with no token at all.
Pass it when you prepare the tracker:
``` tracker.ready( TrackerConfig.builder() .license(BuildConfig.FIELDTRACK_LICENSE) .build() ) ```
Keep the token out of source control - local.properties is gitignored and already carries the sample's Maps key. This keeps it out of the repository, not out of the APK: it is compiled into BuildConfig and readable by anyone who unzips your build. That is expected, because the token is bound to your application id and signed, so a copy is worth nothing in another app.
When the check fails
ready() returns a TrackerResult.Error with LICENSE_MISSING, LICENSE_INVALID or LICENSE_BUNDLE_MISMATCH, and the same failure is emitted on the event flow as TrackerEvent.Error. The licence field is never persisted with the rest of the config - it is re-read on every ready(), so "I updated my licence" never turns into a stale token resurrected from disk.
Beyond the offline gate the SDK asks the licence server whether the token has been revoked or expired since it was issued. You do not wire anything up for that.
The full detail is in the Android integration guide.