当你编写了一个 Flutter 插件来使用需要包含一些 .aar 模块的 SDK。它在插件的示例应用程序中构建并完美运行,但是当你在不同的应用程序中导入Flutter插件并尝试构建它时,构建立即失败并显示一条消息,Direct local .aar file dependencies are not supported when building an AAR.。
为什么示例应用程序可以毫无问题地构建和运行,而不同的应用程序却不能?我唯一能想到的是我从 pubspec中的路径导入插件,但在我看来这不太可能是罪魁祸首。
- 在插件
libs
的android
项目根目录添加一个文件夹。在那里添加.aar
文件。 - 在插件的
build.gradle
文件中,更新rootProject.allProjects
如下:
repositories {
google()
jcenter()
flatDir {
dirs 'libs'
dirs project(':your_plugin_name_here').file('libs')
}
}
}
仍然在同一个 项目build.gradle 中,添加您的.aar
文件作为依赖项,如下所示:
implementation(name:'aar_name_here', ext:'aar')
在要使用插件的 Flutter 应用程序中,打开app的build.gradle
文件并将插件添加为依赖项,如下所示:
android {
...
dependencies {
implementation project(':your_flutter_plugin');
}
}
在我们使用插件的应用程序settings.gradle
文件中包含插件,更改
include ':app', ':your_flutter_plugin'