must_be_a_native_function_type
「{1}」に指定された型「{0}」は、有効な 'dart:ffi' ネイティブ関数型である必要があります。
説明
#Pointer.fromFunction、DynamicLibrary.lookupFunction、または NativeCallable コンストラクタの呼び出しで、型引数(明示的か推論されたかにかかわらず)がネイティブ関数型ではない場合に、アナライザはこの診断を生成します。
FFI の詳細については、dart:ffi を使用した C の相互運用 を参照してください。
例
#次のコードは、型 T が Function の任意のサブクラスになる可能性があるため、この診断を生成します。しかし、fromFunction の型引数にはネイティブ関数型が必要です。
dart
import 'dart:ffi';
int f(int i) => i * 2;
class C<T extends Function> {
void g() {
Pointer.fromFunction<T>(f, 0);
}
}一般的な修正
#呼び出しの型引数としてネイティブ関数型を使用してください。
dart
import 'dart:ffi';
int f(int i) => i * 2;
class C<T extends Function> {
void g() {
Pointer.fromFunction<Int32 Function(Int32)>(f, 0);
}
}