J'utilisais la méthode Android native dans mon application Flutter en utilisant la documentation qui disait utilisation
MethodChannel(flutterView, CHANNEL).setMethodCallHandler...
mais après la mise à niveau du scintillement, la MethodChannel
fonction ne nécessite plus flutterView
et il n'y en a flutterView
plus.
can not resolve method getFlutterView()
Je pense qu'il devrait y avoir un nouveau tutoriel pour créer une chaîne
à la place, il en a besoin BinaryMessenger
que je ne sais pas quoi donner à la place.
c'est l'ancien code qui ne fonctionne plus:
import io.flutter.app.FlutterActivity;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
import io.flutter.plugin.common.MethodChannel.Result;
public class MainActivity extends FlutterActivity {
private static final String CHANNEL = "samples.flutter.dev/battery";
@Override
public 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.
// TODO
}
});
}
android
flutter
flutter-channel
Mahmood Bkh
la source
la source
Enlève ça
import io.flutter.embedding.android.FlutterActivity;
Ajouter cette importation
io.flutter.app.FlutterActivity;
Travaillé pour moi
la source
Ajoutez simplement cette méthode à votre classe:
Et puis remplacez éventuellement tous (Refactor> Rename) "getFlutterView" par "getBinaryMessenger" pour avoir un code plus lisible:
la source
J'ai passé des jours à essayer de comprendre comment ajouter une interface utilisateur Flutter à mon application Android existante. Le plus grand défi était de faire fonctionner le MethodChannel avec FlutterActivity appelé depuis MainActivity. Je sais que c'est un peu différent de la question posée ici, mais ce message a été renvoyé lorsque j'ai fait des recherches sur 'Android FlutterActivity MethodChannel'. Après avoir parcouru de nombreuses ressources sur la façon de le faire, j'ai finalement trouvé ma solution ici: https://github.com/flutter/samples/tree/master/add_to_app/android_using_plugin/app/src/main/java/dev/flutter/ exemple / androidusingplugin
Au départ, dans Android Studio, avec l'application existante ouverte, j'ai tapé sur Fichier, Nouveau, Nouveau module, Module Flutter. J'ai reçu une erreur et j'ai dû effectuer des étapes manuelles.
Mon objectif est de lancer FlutterActivity (ouvre main.dart dans le flutter_module) dans MainActivity - onCreate, puis de développer des `` écrans '' Flutter exploitant autant de code Flutter natif que possible, avec des appels de plateforme limités utilisant le MethodChannel. Pendant que je développe un code Flutter de remplacement, je continuerai à commenter le code Android existant.
Voici ce qui a finalement fonctionné pour moi:
../App_Project/Android/Existing_Android_App/settings.gradle
../App_Project/Android/Existing_Android_App/app/build.gradle
../App_Project/Android/Existing_Android_App/app/src/main/AndroidManifest.xml
../App_Project/Android/Existing_Android_App/app/src/main/java/com/existing_android_app/MainActivity.java
../App_Project/flutter_module/lib/home_page.dart
la source