我想使用Flutter创建一个依赖于包装在aar文件中的第三方 SDK 的 Android 应用程序。到目前为止,我只找到了Flutter 中访问平台和第三方服务的文章。看来我必须使用Android Studio构建带有附加 Java 文件的 Flutter 项目。这很复杂,不是我想要的。有什么方法可以直接加载Dart代码中的 aar 文件或 *.so 文件?类似于JNI的工作方式。
3 回答
在学习了 Flutter 示例 - hello services之后,我已经成功地用aar文件构建了我的 Flutter 项目。
基本步骤:
- 下载 Flutter 源代码。
- 在Android Studio中打开flutter/examples/hello_services/android。
- 单击File > New > New Module并选择Import .JAR/.AAR Package。
- 按 F4 打开Project Structure,然后添加依赖模块。
- 编写 Java 代码来调用在 aar 文件中定义的 API。
- 将flutter/examples/hello_services导入Intellij IDEA。
- 构建并运行 Flutter 应用程序。
我已将源代码推送到 GitHub。
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 项目中
如果您想将 .aar 文件添加到您的 Flutter 项目并在 Android Studio 中遇到问题说
“无法理解 Gradle 设置文件,请手动添加路径 ':moduleName'”
本教程介绍如何手动将 Android .aar 模块添加到您的 Flutter 项目中。


