我想使用 Flutter 创建一个Android应用,该应用依赖于包含在 aar 文件中的第三方SDK。到目前为止,我只找到了文章Accessing Platform and Third-Party Services in Flutter。看来我必须使用 Android Studio 使用其他Java文件构建Flutter项目。这很复杂,不是我想要的。 有没有办法在 Dart 代码中直接加载aar文件或* .so文件?像 JNI 的工作原理。
答案 0 :(得分:4)
在学习了Flutter示例 - hello services之后,我已经使用 aar 文件成功构建了我的Flutter项目。
基本步骤:
我已将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
然后,按照屏幕上的说明进行集成。
更具体地说,此命令(默认情况下为所有调试/配置文件/发布模式)创建一个具有以下文件的本地存储库:
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应用中中的后续步骤操作。
有关更多信息,请参见Integrate a Flutter module into your Android project
答案 2 :(得分:0)
如果您想将 .aar 文件添加到 Flutter 项目并在 Android Studio 中遇到问题
"无法理解Gradle设置文件,请手动添加路径':moduleName'"
this tutorial 是如何手动将 Android .aar 模块添加到您的 Flutter 项目中。