一:在AndroidManifest.xml添加
<meta-data
android:name="flutterEmbedding"
android:value="2" />
截屏2021-08-11 上午8.35.07.png
二.在MainActivity.kt中
(1)替换引用
//1.删除引用
import io.flutter.app.FlutterActivity
import io.flutter.plugin.common.MethodChannel.MethodCallHandler
import io.flutter.plugin.common.MethodChannel.Result
//2.添加引用
import androidx.annotation.NonNull
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel
import io.flutter.plugins.GeneratedPluginRegistrant
(2)替换入口
//1.删除方法onCreate
class MainActivity : FlutterActivity() {
//入口
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//以前写代码的地方...
}
}
//2.添加方法configureFlutterEngine
class MainActivity : FlutterActivity() {
//入口
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
// super.configureFlutterEngine(flutterEngine)
//现在写代码的地方...
}
}
//3.注意
//如果MainActivity继承的不是FlutterActivity,需要添加下面的代码
//如果MainActivity继承的是FlutterActivity,不需要添加下面的代码
//super.configureFlutterEngine(flutterEngine)
(3)替换信道
//定义的信道的名
private static final String CHANNEL = "samples.flutter.channel.name";
//1.删除
new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(
new MethodCallHandler() {
@Override
public void onMethodCall(MethodCall call, Result result) {
// 以前的接收flutter端信息的代码...
}
});
//2添加
new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), CHANNEL)
.setMethodCallHandler(
(call, result) -> {
// 现在的接收flutter端信息的代码...
}
);
(4)替换GeneratedPluginRegistrant类的引用
//1.删除引用
package io.flutter.plugins;
import io.flutter.plugin.common.PluginRegistry;
import io.flutter.plugins.connectivity.ConnectivityPlugin;
import com.flutter_webview_plugin.FlutterWebviewPlugin;
import com.foxconn.imes_base_plugins.ImesBasePluginsPlugin;
import com.github.sososdk.orientation.OrientationPlugin;
import io.flutter.plugins.pathprovider.PathProviderPlugin;
import io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin;
//2.添加引用
package io.flutter.plugins;
import androidx.annotation.Keep;
import androidx.annotation.NonNull;
import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.embedding.engine.plugins.shim.ShimPluginRegistry;
//3清理残存
flutter clean
//4.重装插件
flutter pub get
(5)重启项目
三:参考
(1)flutter官网参考:
https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects
(2)flutter代码参考:
https://www.jianshu.com/p/9c1e14fc16ec
https://blog.csdn.net/csdnnews/article/details/114715014