メインコンテンツにスキップ

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);