跳到主要内容

ffi_native_must_be_external

原生函数必须声明为 external。

描述

#

当函数被注解为 @Native 但未标记为 external 时,分析器会生成此诊断信息。

示例

#

以下代码会生成此诊断信息,因为函数 free 被注解为 @Native,但未标记为 external

dart
import 'dart:ffi';

@Native<Void Function(Pointer<Void>)>()
void free(Pointer<Void> ptr) {}

常见修复方法

#

如果该函数是原生函数,则在返回类型之前添加修饰符 external

dart
import 'dart:ffi';

@Native<Void Function(Pointer<Void>)>()
external void free(Pointer<Void> ptr);