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

时间:2019-11-27 10:55:33

标签: android ionic-framework capacitor

iOS的问题已得到解决: How to embed framework in capacitor plugin for iOS

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

1 个答案:

答案 0 :(得分:0)

就像在iO上所做的一样,我们实际上在这里做同样的事情。但是,使用Android Studio和gradle代替xcode和cocoapods。 好的,但首先要注意。

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

Plugin folder showing all the files inside it

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

Initial screen o android studio showing the option to open a project

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

Zoomed version of the files pane of Android Studio and gradle log showing that the project was successfully opened

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

Menu showed by the action of right clicking the android java module

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

Plus sign highlighted

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

new module screen showing the referred option

然后,找到您的包。结果将如下所示。

aar package imported

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

module added screen

由于我的模块具有依赖性,因此我将重复本教程的这一部分。

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

Plus sign of the declared dependencies highlighted

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

Result of the plus sign click

现在,让我们选择我们的模块。它很简单,只需将其标记并单击确定即可。如前所述,既然必须这样做,我将对其进行检查。

add module dependency screen showing the dependencies to add

如果这一步顺利进行,那么您现在应该使android模块具有一个以上的依赖关系(在我的情况下为两个)。如下图所示。

module dependencies showing the new ones

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

kotlin first steps to convert

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

minimum kotlin implementation of my plugin

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

接下来,要使插件正常工作,我们需要在将要使用的应用的MainActivity上添加其类。

Main activity of the app showing the add our newly created plugin

现在,要使其正常工作,我不是100%地确定这是正确的方法,但是由于它可以工作,因此我可以这样做。我的方法是通过脚本在应用程序的android模块上添加插件模块。我认为我在gradle插件实现上缺少一些东西,但是因为它可以工作.....

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

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

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