1

我已按照标准Flutter FFI 说明libavcodec.dylib将其包含在 Flutter 项目中。

调用DynamicLibrary.open('libavcodec.59.dylib')执行没有问题,并返回一个非负句柄地址,(我认为)表明加载成功。

当我尝试查找任何符号时,Flutter 会抛出错误:

“[错误:flutter/lib/ui/ui_dart_state.cc(209)] 未处理的异常:无效的参数:无法查找符号...”。

当我providesSymbol()使用各种符号名称调用时,它总是返回false.

有谁知道为什么会发生这种情况?引导这样的库是否需要额外的步骤?如何调试问题的根本原因?

我认为这是根头文件。这是 lib 的文档

4

1 回答 1

1

看起来 dylib 中的名称与 C 代码中的名称不太匹配。当我通过 dylib 中的名称查找符号时,它们按预期解析。

我用来解决这个问题的工具如下:

nm -gU mylib.dylib
于 2022-01-08T08:54:48.657 回答