首页 > 解决方案 > 在 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)

    }
}

标签: androidflutter

解决方案


应用程序类在应用程序启动过程中处理上下文、环境设置等,因此与清单注册一起,您必须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);
  }
}

推荐阅读