gpt4 book ai didi

android - 如何在 flutter 包中使用原生 C 库

转载 作者:IT王子 更新时间:2023-10-29 06:56:28 27 4
gpt4 key购买 nike

我有一个用 C 编写的库,我以前通过 JNI 从 java android 应用程序中使用过它。

我现在转而使用 flutter,计划是制作一个包装 C 库的 flutter 包。

包的 flutter 项目已经创建,计划使用 Platform Channels (invokeMethod 调用一些简单的 Java 方法,为库调用 JNI。我想我已经实现了大部分。

但问题是,我通常会将有关库和 JNI 存在的信息添加到我的 android java 项目的 build.gradle 中。但是,当我在 flutter 包的结构中工作时,我找不到这些文件。如果我改为构建一个标准的 flutter 项目(一个带有 UI 的应用程序),我突然有了 build.gradle 文件。

我该如何添加这些 gradle 文件,或者我应该将有关 lib/JNI 的信息添加到其他一些特定于 flutter 的文件中?多层 dart->platformChannel -> java -> jni -> C 库 aproach 听起来像是正确的做法吗?或者有更好的方法吗?

最佳答案

你确定你创建了一个 Flutter 插件项目(不是包)?插件是一种包含实现 Flutter 原生层的 Dart/Kotlin(或 Java)/Swift(或 Obj-C)代码的包,加上一个练习和演示插件使用的示例应用程序.

一个 Flutter 插件有 3 个 build.gradle 文件:

  1. ./android/build.grade 在其中设置插件的最小 SDK、依赖项等
  2. ./example/android/build.grade 一般保持不变
  3. ./example/android/app/build.gradle 这是您为示例应用设置内容的地方

您对 (1) 所做的任何更改都会冒泡到示例应用程序(这只是一个使用您的插件的示例应用程序)。同样,当您在其他应用程序中使用该插件时,该应用程序只会从您的插件中获取 (1)。

将您的依赖项添加到 (1)。

关于android - 如何在 flutter 包中使用原生 C 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56773090/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com