Метод FlutterChannel invokeMethod выдает исключение MissingPluginException в Android
Я пытаюсь разработать конкретный код платформы в моем проекте Flutter. Я использую шаги на веб-сайте флаттера, и я написал метод для проверки функциональности.
Java-код:
import android.os.Bundle;
import io.flutter.app.FlutterActivity;
import io.flutter.plugins.GeneratedPluginRegistrant;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugin.common.MethodChannel.Result;
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
public class MainActivity extends FlutterActivity {
private static final String CHANNEL = "hyperpay";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GeneratedPluginRegistrant.registerWith(this);
new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(
new MethodCallHandler() {
@Override
public void onMethodCall(MethodCall call, Result result) {
// Note: this method is invoked on the main thread.
if (call.method.equals("getPlatformVersion")) {
result.success("Android " + android.os.Build.VERSION.RELEASE);
} else {
result.notImplemented();
}
}
}
);
}
}
Код дротика:
Future<void> setPlatformVersionState() async {
String platformVersion;
const channel = MethodChannel('hyperpay');
try {
final platformVersion = await channel.invokeMethod('getPlatformVersion');
setState(() {
_platformVersion = platformVersion;
});
} on PlatformException catch (error) {
setState(() {
_platformVersion = null;
});
}
}
В IOS у меня не было проблем, и код был успешно выполнен. Но в Android я получаю следующее исключение:
Exception has occurred.
MissingPluginException (MissingPluginException(No implementation found for method getPlatformVersion on channel hyperpay))
1 ответ
Я решил проблему.
Java-код должен быть в:
android/app/src/main/java/com/**example**/app_name/MainActivity.java
Но я написал в нем:
android/app/src/main/java/com/**username**/app_name/MainActivity.java
Поэтому, когда был вызван invokemethod, он не нашел ни одного канала / метода в MainActivity.java.