如何使用 Android aar 文件构建 Flutter 项目?
How to build Flutter project with Android aar file?
我想使用 Flutter 创建一个 Android 应用程序,它依赖于包装在 aar[=19 中的第三方 SDK =] 文件。到目前为止,我只找到了文章Accessing Platform and Third-Party Services in Flutter。看来我必须使用 Android Studio 使用额外的 Java 文件构建 Flutter 项目。这很复杂,不是我想要的。
在Dart代码中有没有办法直接加载aar文件或*.so文件?类似于 JNI 的工作方式。
在学习了 Flutter 示例后 - hello services,我已经使用 aar 文件成功构建了我的 Flutter 项目。
基本步骤:
- 下载 Flutter 源代码。
- 在 Android Studio.
中打开 flutter/examples/hello_services/android
- 单击文件 > 新建 > 新建模块 并选择导入 .JAR/.AAR 包。
- 按F4打开Project Structure,然后添加依赖模块
- 编写 Java 代码来调用在 aar 文件中定义的 API。
- 将flutter/examples/hello_services导入Intellij IDEA。
- 构建并运行 Flutter 应用程序。
我已将 source code 推送到 GitHub。
Flutter 可以作为源代码 Gradle 子项目或作为 AAR 逐步嵌入到您现有的 Android 应用程序中。
取决于 Android 存档 (AAR)
此选项将您的 Flutter 库打包为由 AAR 和 POM 工件组成的通用本地 Maven 存储库。此选项允许您的团队在不安装 Flutter SDK 的情况下构建主机应用程序。然后,您可以从本地或远程存储库分发工件。
假设您在 some/path/my_flutter
构建了一个 Flutter 模块,然后 运行:
cd some/path/my_flutter
flutter build aar
然后,按照on-screen说明进行整合。
更具体地说,此命令创建(默认所有 debug/profile/release 模式)本地存储库,其中包含以下文件:
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'
}
提示:您还可以在 Android Studio 中使用 Build > Flutter > Build AAR
菜单为您的 Flutter 模块构建 AAR。
您的应用现在包含 Flutter 模块作为依赖项。您可以按照将 Flutter 屏幕添加到 Android 应用.
中的后续步骤操作
有关详细信息,请参阅 Integrate a Flutter module into your Android project
如果您想将 .aar 文件添加到您的 Flutter 项目并在 Android Studio 中遇到问题说
" 无法理解 Gradle 设置文件,请手动添加路径 ':moduleName'"
this tutorial 是如何将 Android .aar 模块手动添加到您的 flutter 项目中。
我想使用 Flutter 创建一个 Android 应用程序,它依赖于包装在 aar[=19 中的第三方 SDK =] 文件。到目前为止,我只找到了文章Accessing Platform and Third-Party Services in Flutter。看来我必须使用 Android Studio 使用额外的 Java 文件构建 Flutter 项目。这很复杂,不是我想要的。 在Dart代码中有没有办法直接加载aar文件或*.so文件?类似于 JNI 的工作方式。
在学习了 Flutter 示例后 - hello services,我已经使用 aar 文件成功构建了我的 Flutter 项目。
基本步骤:
- 下载 Flutter 源代码。
- 在 Android Studio. 中打开 flutter/examples/hello_services/android
- 单击文件 > 新建 > 新建模块 并选择导入 .JAR/.AAR 包。
- 按F4打开Project Structure,然后添加依赖模块
- 编写 Java 代码来调用在 aar 文件中定义的 API。
- 将flutter/examples/hello_services导入Intellij IDEA。
- 构建并运行 Flutter 应用程序。
我已将 source code 推送到 GitHub。
Flutter 可以作为源代码 Gradle 子项目或作为 AAR 逐步嵌入到您现有的 Android 应用程序中。
取决于 Android 存档 (AAR)
此选项将您的 Flutter 库打包为由 AAR 和 POM 工件组成的通用本地 Maven 存储库。此选项允许您的团队在不安装 Flutter SDK 的情况下构建主机应用程序。然后,您可以从本地或远程存储库分发工件。
假设您在 some/path/my_flutter
构建了一个 Flutter 模块,然后 运行:
cd some/path/my_flutter
flutter build aar
然后,按照on-screen说明进行整合。
更具体地说,此命令创建(默认所有 debug/profile/release 模式)本地存储库,其中包含以下文件:
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'
}
提示:您还可以在 Android Studio 中使用 Build > Flutter > Build AAR
菜单为您的 Flutter 模块构建 AAR。
您的应用现在包含 Flutter 模块作为依赖项。您可以按照将 Flutter 屏幕添加到 Android 应用.
中的后续步骤操作有关详细信息,请参阅 Integrate a Flutter module into your Android project
如果您想将 .aar 文件添加到您的 Flutter 项目并在 Android Studio 中遇到问题说
" 无法理解 Gradle 设置文件,请手动添加路径 ':moduleName'"
this tutorial 是如何将 Android .aar 模块手动添加到您的 flutter 项目中。