【问题标题】:how to use c++ code in flutter (android) application?如何在颤振(android)应用程序中使用 C++ 代码?
【发布时间】:2019-07-23 22:27:37
【问题描述】:

我正在用 Flutter(适用于 Android)开发一个应用程序,其核心基于一个仅用 C++ 和 python 开发的库。因此,我想知道如何在我的 dart 代码(C++ 版本或 Python 版本)中使用这个库。

【问题讨论】:

  • 你能提供一些示例代码(Dart 和 C++),否则@Xavier 的答案似乎是一个。
  • 试试 Richard Heap 的 video,它帮助我安静了很多。他用一个例子解释了如何在你的 Flutter 应用程序的 Dart 代码和你正在使用的 C++ 库之间进行交互,所有这些都是通过dart:ffi 进行的。我还建议您查看post,以了解在通过 Flutter 应用程序运行 C++ 代码时调试它的方法。

标签: android python c++ dart flutter


【解决方案1】:

补充信息 (2021-05-05)

来自@FacundoFarall 对原始问题的评论:

试试 Richard Heap 的 video,它帮助我安静了很多。他举例说明了如何通过 dart:ffi 在 Flutter 应用程序的 Dart 代码和您正在使用的 C++ 库之间进行交互。我还建议您查看post,以了解在通过 Flutter 应用程序运行 C++ 代码时调试它的方法。

更新 (2019-09-10)

今天是released Dart 2.5(和 Flutter 1.9)。 Dart 2.5 的新增功能之一是“直接从 Dart 调用 C 代码的 dart:ffi 外部函数接口”。我还没有检查它,但它应该提供与 C(和 C++)代码接口的更直接的路径。

另见announcement video(确认新旧方法)。

旧答案(仍然有效)

我会看看 Platform Channels,它是一种将 Flutter 代码与平台原生代码通信的方式(例如,Android 上的 Java/Kotlin,iOS 中的 Objective C/Swift)。从那里,您可以使用常规 NDK 机制使用您的 C++ 库。

你可以看到Flutter Platform ChannelsGetting Started with the NDK的介绍。

也许有更直接的路线,但这是我知道可行的路线。

【讨论】:

  • 我检查了第一个答案,dart 编译器没问题,但我无法在颤振中使用它,我提出了一个问题stackoverflow.com/q/57900637/2719243
  • 感谢您及时更新答案:)
猜你喜欢
  • 1970-01-01
  • 2018-11-07
  • 2018-12-16
  • 2021-02-18
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 2022-06-25
相关资源
最近更新 更多