You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为现有Flutter插件加Windows平台时c_api与generated_plugin_registrant.cc异常

解决Flutter现有插件Windows平台generated_plugin_registrant.cc头文件路径缺失c_api后缀问题

问题根源

旧版Flutter Windows插件的头文件命名不带c_api后缀,而新版Flutter为适配FFI等特性,插件模板生成的头文件默认带有该后缀。现有项目因未同步更新插件配置,导致自动生成的generated_plugin_registrant.cc中的include路径与实际头文件不匹配。

解决方案

1. 修正插件pubspec.yaml配置

在插件的pubspec.yaml中,明确指定Windows平台的头文件名,确保与实际文件一致:

flutter:
  plugin:
    platforms:
      windows:
        pluginClass: UtilPublicStorePlugin
        dartPluginClass: UtilPublicStore
        fileName: util_public_store_plugin_c_api.h

2. 手动临时修正自动生成文件(仅临时应急,不推荐长期依赖)

直接修改example/windows/flutter/generated_plugin_registrant.cc中的include路径,添加c_api后缀:

// 替换原include行
#include <util_public_store/util_public_store_plugin_c_api.h>

注意:该文件为自动生成,后续执行flutter run或pub get可能会被覆盖,建议优先通过配置层面解决。

3. 同步Flutter版本与插件模板

  • 升级Flutter到最新稳定版:
flutter upgrade
  • 重新生成Windows平台相关文件(执行前请备份现有Windows目录内容):
flutter create --platforms=windows .

4. 验证插件Windows目录结构与CMake配置

确保插件的Windows头文件路径为windows/include/util_public_store/util_public_store_plugin_c_api.h,并在windows/CMakeLists.txt中正确配置include路径:

target_include_directories(${PLUGIN_NAME} INTERFACE
  "${CMAKE_CURRENT_SOURCE_DIR}/include"
)

内容的提问来源于stack exchange,提问作者Hedwin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 01:42:13