ffi_ native_ must_ be_ external
Native functions must be declared external.
Description
#
The analyzer produces this diagnostic when a function annotated as being
@Native
isn't marked as
external
.
Example
#
The following code produces this diagnostic because the function
free
is
annotated as being
@Native
, but the function isn't marked as
external
:
import 'dart:ffi';
@Native<Void Function(Pointer<Void>)>()
void free(Pointer<Void> ptr) {}
Common fixes
#
If the function is a native function, then add the modifier
external
before the return type:
import 'dart:ffi';
@Native<Void Function(Pointer<Void>)>()
external void free(Pointer<Void> ptr);
Unless stated otherwise, the documentation on this site reflects Dart 3.9.2. Page last updated on 2025-9-1. View source or report an issue.