向 Android Cordova 插件添加依赖项

Posted

技术标签:

【中文标题】向 Android Cordova 插件添加依赖项【英文标题】:Add a dependency to an Android Cordova plugin 【发布时间】:2016-03-22 18:21:27 【问题描述】:

我正在构建一个 Cordova Android 插件。我想在由插件创建(特别是scissors)的Intent 中使用第三方View。 通常(在非 Cordova 项目中)我会转到我的项目的 build.gradle 文件并像这样添加它:

dependencies 
compile 'com.lyft:scissors:1.0.1' 

但似乎我的插件项目中的build.gradle 文件不应该被触及? 向插件项目添加依赖项以支持通过 Cordova 构建和通过 android Studio 构建的正确方法是什么? 同样的问题,但针对本地项目(未托管在 GitHub 上)。

【问题讨论】:

【参考方案1】:

您必须使用自己的 gradle 文件,然后像这样将其链接到 plugin.xml

<framework src="relative/path/your.gradle" custom="true" type="gradleReference" />

您必须将该标签放在plugin.xml 上,因此在插件安装时它会被读取并由cordova 处理(不确定它在内部是如何工作的,但我想它会将值从您的自定义 .gradle 复制到主构建.gradle)。

所以你不能在你当前的项目上测试它,你必须创建一个新项目并添加插件,看看它是否有效

【讨论】:

您好,感谢您的回答。你能解释一下使用你自己的gradle文件是什么意思吗?有没有办法将依赖项链接到 git 存储库(例如问题中的链接)? 您使用您在问题上发布的文本创建一个新的 .gradle 文件,然后将您的 .gradle 文件链接到您的 plugin.xml 上,正如我在回答中告诉您的那样。看看人行横道插件 以及如何将它添加到 Android Studio 以便我可以实际使用它? 您以前创建过插件吗?阅读插件开发指南cordova.apache.org/docs/en/latest/guide/hybrid/plugins/…,尝试创建一个基本插件,一旦你开始工作,添加剪刀 不,我没有。这是我正在编辑的工作插件。我很确定他们使用cordova create 生成所有文件,然后添加了一个plugin.xml 文件,就像这个(旧)教程建议devgirl.org/2013/07/17/…。这种方法的优点是我可以很容易地测试我的插件。现在,由于我的插件本身就是一个 cordova 项目,我不能只编辑它的 gradle 文件。我设法在 ios 版本中解决了这个问题,但使用 android 似乎更复杂。希望我说的有道理...【参考方案2】:

Cordova Android plugins doc(在“添加依赖库”中)指定您可以在 plugin.xml 中添加带有 &lt;framework&gt; 标记的依赖库。

所以对于剪刀依赖,你可以使用:

<platform name="android">
    <framework src="com.lyft:scissors:1.0.1" />

【讨论】:

然后呢?我需要做什么才能在 Android Studio 中使用它?运行“cordova prepare ios”似乎还不够,也不构建或清理。 假设您的意思是cordova prepare android,您需要创建一个依赖于您的插件的 Cordova 应用程序以便对其进行测试。在运行 cordova prepare android 之前,您可以使用此测试应用程序中的 cordova plugin add &lt;path/to/your/plugin&gt; 添加依赖项。 出于某种原因,当我用我的插件尝试这个时,它似乎偶尔会缓存这些设置。进行上述更改,然后:cordova platform rm androidcordova platform add android@5.1.1cordova plugin add myplugin 它对我有用。必须检查此答案是否正确。 我没有在我的根项目文件夹中看到 plugin.xml。我只在 /plugins/cordova-xxx 文件夹下看到了很多 plugin.xml。我应该手动创建 plugin.xml 文件吗?

以上是关于向 Android Cordova 插件添加依赖项的主要内容,如果未能解决你的问题,请参考以下文章

将Pod依赖项添加到cordova插件

Cordova 插件和依赖项

Android Studio - 向所有模块添加依赖项

如何通过android studio中的自定义插件的操作在项目中动态添加依赖项?

gradle 依赖项更新问题后 Cordova Android 构建损坏

生成 apk 时出现 Cordova-plugin-file 错误