遇到问题
flutter1.12版本SDK创建新项目的时候,Android项目会将继承的 FlutterActivity 从 io.flutter.app.FlutterActivity 替换为 io.flutter.embedding.android.FlutterActivity,AndroidManifest文件也会有一些改变
import io.flutter.embedding.android.FlutterActivity //更新的部分 import io.flutter.embedding.engine.FlutterEngine import io.flutter.plugins.GeneratedPluginRegistrant class MainActivity: FlutterActivity() { override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { GeneratedPluginRegistrant.registerWith(flutterEngine); } } //AndroidManifest文件的变化 <meta-data android:name="flutterEmbedding" android:value="2" />在实际开发过程中会有这样的问题,TextField 在你已经输入的情况下,按下home按键返回桌面,再回到app时,输入框的内容会自动清除。如下图:
解决方案
1、将MainActivity继承的FlutterActivity改为io.flutter.app.FlutterActivity
import android.os.Bundle import io.flutter.app.FlutterActivity //(修改之前为import io.flutter.embedding.android.FlutterActivity) import io.flutter.plugins.GeneratedPluginRegistrant class MainActivity : FlutterActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) GeneratedPluginRegistrant.registerWith(this); } }2、移除AndroidManifest.xml文件中的以下代码
<meta-data android:name="flutterEmbedding" android:value="2" />总结
当然这么做的话,只是临时解决问题,并不是最优解,期待官方的下一个版本能修复这个问题。参考https://github.com/flutter/flutter/issues/47628#issuecomment-576889475