如何使用Android aar文件构建Flutter项目?

时间:2017-01-16 03:29:09

标签: android dart shared-libraries aar flutter

我想使用 Flutter 创建一个Android应用,该应用依赖于包含在 aar 文件中的第三方SDK。到目前为止,我只找到了文章Accessing Platform and Third-Party Services in Flutter。看来我必须使用 Android Studio 使用其他Java文件构建Flutter项目。这很复杂,不是我想要的。 有没有办法在 Dart 代码中直接加载aar文件或* .so文件?像 JNI 的工作原理。

3 个答案:

答案 0 :(得分:4)

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

基本步骤:

  1. 下载Flutter源代码。
  2. Android Studio 中打开 flutter / examples / hello_services / android
  3. 点击文件>新>新模块并选择导入.JAR / .AAR包
  4. 按F4打开项目结构,然后添加从属模块。
  5. 编写Java代码以调用在aar文件中定义的API。
  6. flutter / examples / hello_services 导入 Intellij IDEA
  7. 构建并运行Flutter应用程序。
  8. 我已将source code推送到GitHub。

答案 1 :(得分:0)

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

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

enter image description here

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

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。

enter image description here

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

有关更多信息,请参见Integrate a Flutter module into your Android project

答案 2 :(得分:0)

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

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

enter image description here

this tutorial 是如何手动将 Android .aar 模块添加到您的 Flutter 项目中。

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