Troubleshooting

Symptom Cause / fix
E001 SDK_NOT_FOUND Set ANDROID_HOME or platform.android.sdk; install the platform with sdkmanager "platforms;android-36". The tool never downloads SDKs.
A method is missing native-api-bindgen why-skipped '<Type#member>' shows the reason code. Types outside the closure appear as JObject (E016): add them with --entry.
NativeApiUnavailableException The API is newer than the device (E012). Check AndroidApi.isAtLeast(n) before calling.
UseAfterReleaseError The object was release()d/dispose()d; don't reuse it.
Callback from a background Java thread hangs The Java thread waits for Dart by default while the isolate waits for that thread. Pass <method>$async: true for void listeners.
Future completed in a callback doesn't resume until something else happens Fixed in 0.1.0-beta.1: generated trampolines wake the event loop after same-thread callbacks. Regenerate bindings.
Desktop JNI tests: CMake cannot find JNI Set JAVA_HOME; tools/run_jvm_runtime_tests.sh passes explicit JNI paths to CMake.
'Text' is imported from both … (or View, Color, …) Android and Flutter share names. Import the bindings with a prefix: import '…/bindings.dart' as android;
ambiguous export Two packages declare the same class name; the second is hidden from bindings.dart — import its library directly.
Source: docs/troubleshooting/README.md