11

我想使用Flutter创建一个依赖于包装在aar文件中的第三方 SDK 的 Android 应用程序。到目前为止,我只找到了Flutter 中访问平台和第三方服务的文章。看来我必须使用Android Studio构建带有附加 Java 文件的 Flutter 项目。这很复杂,不是我想要的。有什么方法可以直接加载Dart代码中的 aar 文件或 *.so 文件?类似于JNI的工作方式。

4

3 回答 3

12

在学习了 Flutter 示例 - hello services之后,我已经成功地用aar文件构建了我的 Flutter 项目。

基本步骤:

  1. 下载 Flutter 源代码。
  2. Android Studio中打开flutter/examples/hello_services/android
  3. 单击File > New > New Module并选择Import .JAR/.AAR Package
  4. 按 F4 打开Project Structure,然后添加依赖模块。
  5. 编写 Java 代码来调用在 aar 文件中定义的 API。
  6. flutter/examples/hello_services导入Intellij IDEA
  7. 构建并运行 Flutter 应用程序。

我已将源代码推送到 GitHub。

于 2017-01-20T06:01:41.820 回答
1

Flutter 可以作为源代码 Gradle 子项目或作为 AAR 零碎嵌入到您现有的 Android 应用程序中。

依赖于 Android 存档 ( AAR )

此选项将您的 Flutter 库打包为由 AAR 和 POM 工件组成的通用本地 Maven 存储库。此选项允许您的团队在不安装 Flutter SDK 的情况下构建主机应用程序。然后,您可以从本地或远程存储库分发工件。

假设您在 构建了一个 Flutter 模块some/path/my_flutter,然后运行:

 cd some/path/my_flutter
 flutter build aar

然后,按照屏幕上的说明进行集成。

在此处输入图像描述

更具体地说,此命令创建(默认情况下所有调试/配置文件/发布模式)本地存储库,其中包含以下文件:

build/host/outputs/repo
└── com
    └── example
        └── my_flutter
            ├── flutter_release
            │   ├── 1.0
            │   │   ├── flutter_release-1.0.aar
            │   │   ├── flutter_release-1.0.aar.md5
            │   │   ├── flutter_release-1.0.aar.sha1
            │   │   ├── flutter_release-1.0.pom
            │   │   ├── flutter_release-1.0.pom.md5
            │   │   └── flutter_release-1.0.pom.sha1
            │   ├── maven-metadata.xml
            │   ├── maven-metadata.xml.md5
            │   └── maven-metadata.xml.sha1
            ├── flutter_profile
            │   ├── ...
            └── flutter_debug
                └── ...

要依赖 AAR,主机应用程序必须能够找到这些文件。

为此,请app/build.gradle在您的主机应用程序中进行编辑,使其包含本地存储库和依赖项:

android {
  // ...
}

repositories {
  maven {
    url 'some/path/my_flutter/build/host/outputs/repo'
    // This is relative to the location of the build.gradle file
    // if using a relative path.
  }
  maven {
    url 'https://storage.googleapis.com/download.flutter.io'
  }
}

dependencies {
  // ...
  debugImplementation 'com.example.flutter_module:flutter_debug:1.0'
  profileImplementation 'com.example.flutter_module:flutter_profile:1.0'
  releaseImplementation 'com.example.flutter_module:flutter_release:1.0'
}

提示:您还可以使用Build > Flutter > Build AAR菜单在 Android Studio 中为您的 Flutter 模块构建 AAR。

在此处输入图像描述

您的应用程序现在包含 Flutter 模块作为依赖项。您可以按照将Flutter 屏幕添加到 Android 应用中的后续步骤进行操作。

有关详细信息,请参阅将 Flutter 模块集成到您的 Android 项目中

于 2020-11-04T03:02:19.807 回答
0

如果您想将 .aar 文件添加到您的 Flutter 项目并在 Android Studio 中遇到问题说

“无法理解 Gradle 设置文件,请手动添加路径 ':moduleName'”

在此处输入图像描述

本教程介绍如何手动将 Android .aar 模块添加到您的 Flutter 项目中。

https://www.programmersought.com/article/84681807320/

于 2021-01-12T13:49:18.817 回答