一:在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)
//現(xiàn)在寫代碼的地方...
}
}
//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) -> {
// 現(xiàn)在的接收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官網(wǎng)參考:
https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects
(2)flutter代碼參考:
http://www.reibang.com/p/9c1e14fc16ec
https://blog.csdn.net/csdnnews/article/details/114715014