如何将第二个示例应用程序添加到 Flutter 插件项目中?

SeP*_*läm 6 flutter flutter-plugin

在 Flutter 中创建插件项目时,会在插件项目的子文件夹中添加一个使用该插件的示例应用程序。需要做什么才能将第二个“示例”应用程序添加到插件文件夹?

到目前为止我有:

  1. 复制示例文件夹并将其重命名为(我们称之为)app2

  2. 调整了 android 清单文件中的包名称app2

  3. 重命名pluginrootfolder/app2/pluginname_example.imlpluginrootfolder/app2/pluginname_app2.iml(以反映第二个应用程序的名称)。

  4. 在插件项目(根文件夹)的 .iml 文件中:复制并调整排除文件夹指令以反映app2

      <excludeFolder url="file://$MODULE_DIR$/app2/.dart_tool" />
      <excludeFolder url="file://$MODULE_DIR$/app2/.pub" />
      <excludeFolder url="file://$MODULE_DIR$/app2/build" />
    
    Run Code Online (Sandbox Code Playgroud)
  5. 在插件根目录和 app2 目录中运行Flutter clean和。Flutter pub get

现在的问题是,这app2会导致 1k+Target of URI doesn't exist:错误消息 - 从包(如提供程序和 json_annotation)到插件根项目中的类。您对这里的问题或如何解决有什么想法吗?

fzy*_*cjy 0

首先,请提供完整的 GitHub 可复制存储库并将其链接到此处,以便我可以检查。并且还粘贴(例如使用 github gist)长日志。请对此答案发表评论,以便我可以检查更多内容。

“在插件项目的 .iml 文件(根文件夹)中” - 确实不需要。iml 适用于 intellij idea,与 flutter 无关。所以即使 IML 错误也不应该出错。您甚至可以安全地删除 iml,当您在 intellij 中导入该模块时,它会自动重新创建。

您修改了 pubspec.yaml 吗?例如其中的包名称。

而且,你的插件相对于你的 app2 位于哪里?在示例应用程序中,默认的 pubspec.yaml 用于path: ../指向您的插件。因此,如果您的 app2 没有..插件路径,您也应该更改它。

无论如何,请粘贴您的日志并提供可重现的示例...