android - 在 Android 的 Manifest 文件中提供自定义应用程序类时,Flutter 应用程序崩溃
问题描述
我正在开发一个 Flutter 应用程序。我必须在 Android 的 Application 类中初始化一个对象,并且我创建了一个扩展类的自定义应用程序FlutterApplication
类。我也在清单文件中提供了类名,但是当我运行应用程序时它崩溃了。
请建议,我该怎么做。下面是应用程序类和清单文件的代码。
谢谢你。
清单文件
<application
android:name="com.example.app.MyApplication"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name">
...
</application>
MyApplication 类
package com.example.app;
import android.app.Application;
import io.flutter.view.FlutterMain
import io.flutter.app.FlutterApplication;
class MyApplication extends FlutterApplication {
@override
public void onCreate() {
FlutterMain.startInitialization(this)
}
}
解决方案
应用程序类在应用程序启动过程中处理上下文、环境设置等,因此与清单注册一起,您必须super.onCreate()
按说明调用:
如果您覆盖此方法,请务必调用 {@code super.onCreate()}。
也一样
class MyApplication extends FlutterApplication {
@override
public void onCreate() {
super.onCreate() // add this
}
}
注意:使用super.onCreate()
,不需要调用FlutterMain.startInitialization(this)
,FlutterApplication 会这样做
public class Application extends FlutterApplication implements PluginRegistrantCallback {
@Override
public void onCreate() {
super.onCreate();
AlarmService.setPluginRegistrant(this);
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
}
@Override
public void registerWith(PluginRegistry registry) {
GeneratedPluginRegistrant.registerWith(registry);
}
}
推荐阅读
- python - 列表而不是列表列表
- json - 更改(映射)JSON 列表形状 - 将标签添加到 TypeScript 中的对象
- java - 从 mybatis xml 查询生成 sql 查询
- python - 从字典值中删除外部列表
- linux - 如何转义在 bash 脚本命令行中传递的参数
- java - 如何使用三元运算符中的枚举检查两个条件?
- node.js - Node.js 中间件本地更新
- spring-boot - Spring Boot - Graphql - 从任意解析器代码访问标头
- c# - 在 Web 浏览器控件中单击图像等时如何始终在新的 IE 窗口中打开链接
- java - 在 IntelliJ 中查找整个项目中的所有匿名类