Platform
Android
Inputs
| Input | Used for |
|---|---|
platforms/android-N/android.jar | classes, members, descriptors, generic signatures, constants, parameter names |
data/api-versions.xml | introduced/deprecated levels (including minor levels such as 36.1); hidden-API detection |
data/annotations.zip | nullability, threading, permissions, IntDef metadata |
platform.android.libraries / --jar | your own or third-party .jar/.aar files, e.g. Kotlin libraries |
Supported
- Classes, interfaces, enums, nested types; constructors, static and instance methods, overloads, varargs, fields and exact constants.
- Nullability from platform and AndroidX annotations; availability guards for APIs newer than
minApi. - Implementing Java interfaces (Flutter and React Native); Kotlin
suspendfunctions as DartFutures.
Not yet (reported with reason codes)
| Construct | Code |
|---|---|
| Protected members, constructors of abstract classes | E002 |
| Generic type parameters on generated types (erased to bounds) | E003 |
| Types outside the selected closure (exposed as plain objects) | E016 |
Kotlin default arguments (not applied through JNI; pass every argument); Flow on React Native (opaque object) | E002 note / E016 |
Hidden and non-SDK APIs
A class absent from api-versions.xml is classified as hidden or non-SDK (E006) and never generated, nor are its members. Library jars are not classified this way: their APIs are your library's APIs.