Pular para o conteúdo principal

argument_must_be_native

Detalhes sobre o diagnóstico 'argument_must_be_native' produzido pelo analisador do Dart.

Argument to 'Native.addressOf' must be annotated with @Native

Descrição

#

O analisador emite este diagnóstico quando o argumento passado para Native.addressOf não está anotado com a anotação Native.

Exemplos

#

O código a seguir produz este diagnóstico porque o argumento de addressOf é uma string, não um campo, e strings não podem ser anotadas:

dart
import 'dart:ffi';
​
@Native<Void Function()>()
external void f();
​
void g() {
  print(Native.addressOf('f'));
}

O código a seguir produz este diagnóstico porque a função f é passada para addressOf, mas não está anotada como Native:

dart
import 'dart:ffi';
​
external void f();
​
void g() {
  print(Native.addressOf<NativeFunction<Void Function()>>(f));
}

Correções comuns

#

Se o argumento não for nem um campo nem uma função, substitua o argumento por um campo ou uma função anotada com Native:

dart
import 'dart:ffi';
​
@Native<Void Function()>()
external void f();
​
void g() {
  print(Native.addressOf<NativeFunction<Void Function()>>(f));
}

Se o argumento for um campo ou uma função, anote o campo ou a função com Native:

dart
import 'dart:ffi';
​
@Native<Void Function()>()
external void f();
​
void g() {
  print(Native.addressOf<NativeFunction<Void Function()>>(f));
}

Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.