我想使用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 项目中。