如何将 Android 库(AAR 文件)嵌入到电容器插件中?

Svs*_*shX 4 android ionic-framework capacitor

iOS 已经解决了这个问题: 如何在 iOS 的电容器插件中嵌入框架

对于 Android,当我通过创建新模块将 aar 文件添加到电容器插件时会遇到问题。通过 npm 发布我的电容器插件并将其集成到 ionic 应用程序后,无法再找到 aar 库。

Igo*_*gor 5

就像在 iO 上所做的那样,我们在这里做的几乎是一样的。但是,使用 Android Studio 和 gradle 而不是 xcode 和 cocoapods。好的,但首先要做的事情。

npx @capacitor/cli plugin:generate发出命令后,CLI 所做的就是启动一个文件夹,其中包含用于 iO 的可可豆荚和用于 Android 的 gradle 插件。您可以在下图中看到这一点。

显示其中所有文件的插件文件夹

执行上述命令后,您生成的插件文件夹中将有一个 ios 和 android 文件夹。如果选中,请打开您的 android studio 并选择打开 android studio 项目的选项,选择android文件夹来完成此过程。您可以在初始屏幕上选择此选项,如下图所示。

初始屏幕 o android studio 显示打开项目的选项

项目打开后,如果一切顺利,你会看到你的 android studio 显示这样的屏幕

Android Studio 文件窗格的放大版本和 gradle 日志显示项目已成功打开

现在,让我们添加插件文件。为此,请右键单击 android java 模块并选择“打开模块设置”选项,如下图所示。

右键单击android java模块的动作显示的菜单

打开以下屏幕后,我们需要在此处添加一个包含 jar/aar 依赖项的模块。为此,只需单击上面显示的 + 号。

加号突出显示

在新模块屏幕上,如果向下滚动,将会出现一个“导入 .JAR/.AAR 包”,如上所示。

显示引用选项的新模块屏幕

之后,找到你的 aar 包。结果如下。

导入的 aar 包

单击完成,将出现下一个屏幕。如果没有,请在同一屏幕中点击应用按钮。

模块添加屏幕

由于我的模块有一个依赖项,我将重复本教程的这一部分。

接下来,我们需要添加我们最近添加的模块作为 android 模块的依赖项。在同一屏幕上,单击依赖项选项和“声明的依赖项”窗格的加号。

已声明依赖项的加号突出显示

将显示以下屏幕。我们需要选择第三个选项,因为我们早期所做的是添加一个模块。

加号点击的结果

现在,让我们选择我们的模块。很简单,只需标记并单击确定即可。因为我必须,如前所述,我会检查他们两个。

添加模块依赖项屏幕显示要添加的依赖项

如果这一步进展顺利,您现在应该拥有一个多依赖项(或在我的情况下为两个)的 android 模块。下图显示了这一点。

显示新的模块依赖项

点击应用并关闭此窗口。Gradle 将在后台重建您的插件项目,之后,由于我更了解 kotlin,我会将我的项目转换为 kotlin。如果您愿意,可以按照下图所示进行,但这不是强制性的。

kotlin 转换的第一步

正确完成上述所有操作后,您现在可以在 TestPlugin.kt(或 .java,如果您没有使用 kotlin)上导入您的库。作为参考,下图显示了我的插件的最低实现。

我的插件的最小 kotlin 实现

在插件文件夹中,我们完成了。使用 npm 打包并安装在您的应用程序上。

接下来,为了使插件正常工作,我们需要在您将使用它的应用程序的 MainActivity 上添加它的类。

显示添加我们新创建的插件的应用程序的主要活动

现在,为了使它起作用,我不能 100% 确定这是正确的方法,但既然它起作用了,我就这样做。我做的方法是通过脚本在应用程序的 android 模块上添加插件模块。我想我在 gradle 插件实现上遗漏了一些东西,但因为它有效......

为此,请在您的应用上访问 android/settings.gradle 文件并附加以下内容: 开发包添加

请注意,根据您所做的更改,settings.gradle 文件将被重写。执行脚本以始终保留信息或在构建之前检查它。

就是这样,如果您知道下一步的另一种方法,或者如果有更好的方法,请发表评论。而且,如果这个答案有用,请竖起大拇指,因为这个实现,当完成并工作时,让我有点哭(当然是幸福)。