flutter doctor: Android license status unknown. Run `flutter doctor --android-licenses` to accept the SDK licenses
The Android SDK licenses have not been accepted, so builds cannot download or use SDK components.
Android license status unknownRun `flutter doctor --android-licenses` to accept the SDK licensesSome Android licenses not accepted[!] Android toolchain - develop for Android devicesYou have not accepted the license agreements of the following SDK components Meaning
Run flutter doctor --android-licenses and answer y to each. If it fails, the command-line tools or a compatible Java version are missing; install "Android SDK Command-line Tools (latest)" in Android Studio's SDK Manager and set JAVA_HOME to JDK 17.
Common causes
- Licenses never accepted on this machine
- cmdline-tools component missing
- Wrong Java version for sdkmanager
- ANDROID_HOME/ANDROID_SDK_ROOT not set
- SDK installed under another user
⚡ Quick fix
- Install cmdline-tools in the SDK Manager
- Run
flutter doctor --android-licensesand accept all - Set JAVA_HOME to JDK 17
Detailed fix by platform
Flutter
flutter doctor --android-licenses && flutter doctor -v
How to diagnose
- Tools — cmdline-tools installed?
- Java — Version 17?
- Path — ANDROID_HOME set?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- A Ticker was active when the State was disposed Flutter: _HomeState#abc(ticker active) was disposed with an active Ticker. State.dispose() implementations must call dispose() on all their AnimationControllers
- A Timer is still pending even after the widget tree was disposed Flutter test: A Timer is still pending even after the widget tree was disposed
- adb server version doesn't match adb server version (41) doesn't match this client (39); killing...
Most viewed in Flutter / Dart
- setState() called after dispose() Flutter: setState() called after dispose(): _MyState#1a2b3 (lifecycle state: defunct, not mounted)
- A RenderFlex overflowed Flutter: A RenderFlex overflowed by x pixels on the right/bottom
- Null check operator used on a null value Dart/Flutter: Null check operator used on a null value
Other ways to find it
Where this error sits
Origin: On your device. Errors that are often confused with or caused by this one (click to open):
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
💬 What worked for others
No tips yet — did something else fix this for you?
Share what worked for you
Tips are checked by an editor before they appear. Links are removed.
Report a correction or suggest an improvement
Last updated 4 Nov 2026