使用 .aar 模块的 Flutter 插件在示例应用程序中构建和运行良好,但无法在其他应用程序中构建

Gro*_*hip 4 flutter flutter-plugin flutter-platform-channel

我编写了一个 Flutter 插件来使用需要包含一些 .aar 模块的 SDK。它在插件的示例应用程序中构建并完美运行,但是当我在不同的应用程序中导入插件并尝试构建它时,构建立即失败并显示一条消息,指出在插入。这是没有意义的,因为模块肯定存在 - 如果模块不存在,则在示例应用程序中使用 SDK 的平台通道将失败。

为什么示例应用程序可以毫无问题地构建和运行,而不同的应用程序却不能?我唯一能想到的是我从 pubspec 中的路径导入插件,但在我看来这不太可能是罪魁祸首。

任何建议或帮助在这里将不胜感激。蒂亚!

Gro*_*hip 5

我知道了!!!!

答案如下:How to add .aar dependency in library module?

它适应 Flutter 插件的方式如下:

  1. 在插件libsandroid项目根目录添加一个文件夹。在.aar那里添加文件。
  2. 在插件的build.gradle文件中,更新rootProject.allProjects如下:
    repositories {
        google()
        jcenter()
        flatDir {
            dirs 'libs'
            dirs project(':your_plugin_name_here').file('libs')
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
  1. 仍然在同一个 build.gradle 中,添加您的.aar文件作为依赖项,如下所示:
implementation(name:'aar_name_here', ext:'aar')
Run Code Online (Sandbox Code Playgroud)
  1. 在要使用插件的 Flutter 应用程序中,打开应用程序级build.gradle文件并将插件本身添加为依赖项,如下所示:
android {
  ...
  
    dependencies {
        implementation project(':your_flutter_plugin');
    }
}
Run Code Online (Sandbox Code Playgroud)
  1. settings.gradle我们使用插件的应用程序文件中,更改
include ':app'
Run Code Online (Sandbox Code Playgroud)

include ':app', ':your_flutter_plugin'
Run Code Online (Sandbox Code Playgroud)

这应该这样做!!