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

8ljdwjyq  于 2023-04-10  发布在  Ionic
关注(0)|答案(2)|浏览(190)

这个问题已经在iOS上得到了解决:How to embed framework in capacitor plugin for iOS
对于Android,当我通过创建一个新模块将aar文件添加到电容器插件时会出现问题。通过npm发布我的电容器插件并将其集成到离子应用程序中后,再也找不到aar库了。

lymnna71

lymnna711#

和iOS上一样,我们在这里做的几乎是同样的事情。但是,使用Android Studio和gradle而不是xcode和cocoapods。好的,但首先要做的事情。
当发出npx @capacitor/cli plugin:generate命令时,CLI会启动一个包含iOS的可可pod和Android的gradle插件的文件夹。您可以在下图中看到这一点。

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

随着项目的打开,如果一切顺利,你会看到你的android工作室显示这样的屏幕

现在,让我们添加插件文件。要做到这一点,右键单击android java模块并选择“打开模块设置”选项,如下图所示。

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

在新模块屏幕上,如果向下滚动,会出现一个“Import .JAR/. AARpackage”,如上所示。

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

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

由于我的模块有一个依赖项,我将重复教程的这一部分。
接下来,我们需要添加我们最近添加的模块作为android模块的依赖项。在同一屏幕上,单击依赖项选项和“声明的依赖项”窗格的加号。

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

现在,让我们选择我们的模块。它很简单,只要标记它,然后点击确定。因为我必须,正如前面所说的,我会检查他们两个。

如果这一步顺利,你现在应该有你的android模块与一个以上的依赖(或两个在我的情况下)。

点击apply并关闭此窗口。Gradle将在后台重建您的插件项目,之后,因为我更了解Kotlin,我将把我的项目转换为kotlin。如果您愿意,可以按照下图所示完成,但不是强制性的。

以上所有步骤都完成后,你现在可以将你的库导入到TestPlugin.kt(如果你没有使用Kotlin,则导入到.java)。作为参考,下面的图片展示了我的插件的最小实现。

在插件文件夹中,我们完成了。使用npm打包并安装在您的应用程序上。
接下来,要使插件正常工作,我们需要将其类添加到您将使用它的应用程序的MainActivity上。

现在,为了使它工作,我不是100%确定这是正确的方法,但因为它工作,我这样做。我做的方式是通过脚本在应用程序的Android模块上添加插件模块。我想我在Gradle插件实现上缺少一些东西,但因为它工作.....
为此,请在您的应用上访问android/settings.gradle文件并附加以下内容:

请注意,根据您所做的更改,settings.gradle文件将被重写。请编写一个脚本以始终保留信息,或者在构建之前检查它。
就是这样,如果你知道下一步的另一种方法,或者有更好的方法,请评论。如果这个答案有用,请竖起大拇指,因为这个实现,当完成和工作时,让我哭了一点(当然是幸福)。

yxyvkwin

yxyvkwin2#

我不得不处理这个问题。我所做的是使用命令“npm init @capacitor/plugin”创建一个Capacitor插件。问题是在插件中包含.aar库时出错,因为它自己编译为.aar库。你必须将.aar库放在插件和项目的/android/libs中,并在插件的build.gradle文件中,将其添加为“compileOnly files('libs/[lib_name]. aar')”而不是实现。

相关问题