向 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
中添加带有 <framework>
标记的依赖库。
所以对于剪刀依赖,你可以使用:
<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 <path/to/your/plugin>
添加依赖项。
出于某种原因,当我用我的插件尝试这个时,它似乎偶尔会缓存这些设置。进行上述更改,然后:cordova platform rm android
cordova platform add android@5.1.1
cordova plugin add myplugin
它对我有用。必须检查此答案是否正确。
我没有在我的根项目文件夹中看到 plugin.xml。我只在 /plugins/cordova-xxx 文件夹下看到了很多 plugin.xml。我应该手动创建 plugin.xml 文件吗?以上是关于向 Android Cordova 插件添加依赖项的主要内容,如果未能解决你的问题,请参考以下文章
如何通过android studio中的自定义插件的操作在项目中动态添加依赖项?