native_field_missing_type
このフィールドのネイティブ型を推論できませんでした。アノテーションで指定する必要があります。
説明
#@Native アノテーションが付与されたフィールドで、ネイティブ型の推論のためにアノテーションに型ヒントが必要な場合に、アナライザーはこの診断を生成します。
int や double のような Dart の型には、複数の可能なネイティブ表現があります。フィールドにアクセスする際に正しいロードおよびストアを生成するために、ネイティブ型はコンパイル時に知る必要があるため、明示的な型を指定する必要があります。
例
#以下のコードは、フィールド f が (複数のネイティブ表現が存在する) int 型でありながら、Native アノテーションに明示的な型パラメータがないため、この診断を生成します。
dart
import 'dart:ffi';
@Native()
external int f;一般的な修正
#この診断を修正するには、フィールドのネイティブ宣言から正しいネイティブ表現を見つけます。次に、対応する型をアノテーションに追加します。たとえば、C で f が uint8_t として宣言されていた場合、Dart のフィールドは次のように宣言する必要があります。
dart
import 'dart:ffi';
@Native<Uint8>()
external int f;FFI の詳細については、dart:ffi を使用した C の相互運用 を参照してください。