argument_must_be_native
'Native.addressOf' 的引數必須使用 @Native 進行註解
描述
#當傳遞給 Native.addressOf 的引數未使用 Native 註解時,分析器會產生此診斷訊息。
示例
#以下程式碼會產生此診斷訊息,因為 addressOf 的引數是字串而不是欄位,並且字串無法進行註解
dart
import 'dart:ffi';
@Native<Void Function()>()
external void f();
void g() {
print(Native.addressOf('f'));
}以下程式碼會產生此診斷訊息,因為函式 f 被傳遞給 addressOf 但未被註解為 Native
dart
import 'dart:ffi';
external void f();
void g() {
print(Native.addressOf<NativeFunction<Void Function()>>(f));
}常見修復
#如果引數不是欄位或函式,則將其替換為使用 Native 註解的欄位或函式
dart
import 'dart:ffi';
@Native<Void Function()>()
external void f();
void g() {
print(Native.addressOf<NativeFunction<Void Function()>>(f));
}如果引數是欄位或函式,則使用 Native 註解該欄位或函式
dart
import 'dart:ffi';
@Native<Void Function()>()
external void f();
void g() {
print(Native.addressOf<NativeFunction<Void Function()>>(f));
}