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

ffi_native_unexpected_number_of_parameters_with_receiver

Native アノテーションのパラメータの数が予期せぬ値です。期待値は {0} ですが、実際は {1} でした。Native インスタンスメソッドのアノテーションには、最初の引数としてレシーバーを含める必要があります。

説明

#

ネイティブメソッドの @Native アノテーションで使用されている型引数に、メソッドのレシーバーの型が含まれていない場合に、アナライザーはこの診断を生成します。

#

以下のコードは、@Native アノテーションの型引数 (Void Function(Double)) にメソッドのレシーバーの型が含まれていないため、この診断を生成します。

dart
import 'dart:ffi';

class C {
  @Native<Void Function(Double)>()
  external void f(double x);
}

一般的な修正

#

ネイティブメソッドが宣言されているクラスと同じ型の最初のパラメータを追加してください。

dart
import 'dart:ffi';

class C {
  @Native<Void Function(C, Double)>()
  external void f(double x);
}