首页 > 解决方案 > 为什么 Flutter 的 withNewEngine 无法识别?

问题描述

我正在开发基于表单的应用程序。我们在本地创建表单时非常耗时。我想看看我是否能够在 Flutter 应用程序中创建一个示例表单,然后将其导入我的原生 android 项目。

我创建了一个 Flutter 模块并向其中添加了一些表单视图。我可以通过以下命令构建 aar 文件:

$ flutter build aar.

然后我按照将 Flutter 模块集成到您的 Android 项目文档中。settings.gradle我在本机项目根目录的文件中添加了以下行:

setBinding(new Binding([gradle:this]))
evaluate(new File(
        settingsDir.parentFile,
        'site_finder_flutter/.android/include_flutter.groovy'
))

我有site_finder_flutter我的原生 android 项目,site_finder_android. 所以,我没有得到关于上述evaluate功能的任何错误。

然后,我在本机项目的 app/build.gradle 文件中添加了以下行。

android {
  //...
  compileOptions {
    sourceCompatibility 1.8
    targetCompatibility 1.8
  }
}

dependencies {
    implementation project(path: ':flutter')
...
}

当我点击一个按钮时,我想启动我的 Flutter 屏幕。所以,这是它的代码:

llTestFlutter.setOnClickListener {
  FlutterActivity
    .withNewEngine()
    .initialRoute("/")
    .build(this)
}

FlutterActivity可以自动识别,我导入了课程。但是,withNewEngine无法识别。

在此处输入图像描述

你怎么看?

$ flutter --version
Flutter 1.22.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision f30b7f4db9 (6 days ago) • 2020-10-08 10:06:30 -0700
Engine • revision 75bef9f6c8
Tools • Dart 2.10.1

标签: androidandroid-studioflutter

解决方案


OMG,我想我意识到了问题所在。Android 建议了两个用于导入的选项FlutterActivity

  1. 导入 io.flutter.app.FlutterActivity
  2. 导入 io.flutter.embedding.android.FlutterActivity

我首先选择了第一个选项。这就是为什么没有这种方法的原因。我选择了第二次导入,问题就消失了。


推荐阅读